Arm*_*mel 5 reactjs next.js next-auth
使用NextAuth.js,如何在不注销并再次登录的情况下更新会话对象内的值?
例如,一旦用户登录,我就会使用会话中存储的 URL 来显示用户的头像。
我还提供用户更改他的头像,因此我希望session.user.image
使用头像的新路径进行更新和持久化。我将所有数据存储在 MongoDB 中。我怎样才能做到这一点?现在唯一的解决方案是要求用户退出并重新登录,但这对我来说听起来不是一个可以接受的解决方案:)
我的第一个想法是在用户更新他的头像后更新这个会话对象,但我不知道如何做到这一点。
import React from 'react'
import { signIn, signOut, useSession } from 'next-auth/client'
export default function Page() {
const [ session, loading ] = useSession()
return <>
{session && <>
<img src={session.user.image} />
<button onClick={signOut}>Sign out</button>
</>}
</>
}
Run Code Online (Sandbox Code Playgroud)
一种可能的解决方案是手动更新用户对象。检查以下链接以了解 next-auth 的回调如何工作https://next-auth.js.org/configuration/callbacks - 一种可能的方法是在 jwt()/session() 中更新用户自行回调并调整用户信息。
目前我还没有找到一个函数来触发与数据库相关的用户对象的自动更新。
归档时间: |
|
查看次数: |
440 次 |
最近记录: |