我使用nextjs 13沿着next-auth v4。我有自己的外部express API
我正在使用Google登录提供程序
我正在调用外部API进行登录,并为我提供访问和刷新令牌,在刷新令牌到期时,我希望以静默方式获取新的访问令牌。我能够获取新令牌,但无法使用新获取的令牌更新会话。
我参考了next-auth v4文档,他们有以下示例
import { useSession } from "next-auth/react"
export default function Page() {
const { data: session, status, update } = useSession()
if (status === "authenticated") {
return (
<>
<p>Signed in as {session.user.name}</p>
{/* Update the value by sending it to the backend. */}
<button onClick={() => update({ name: "John Doe" })}>
Edit name
</button>
{/*
* Only trigger a session update, assuming you already updated the value server-side.
* All `useSession().data` references will be updated.
*/}
<button onClick={() => update()}>
Edit name
</button>
</>
)
}
return <a href="/api/auth/signin">Sign in</a>
}
当我尝试同样的方法时,我得到:typeError:update不是函数
1条答案
按热度按时间uwopmtnx1#
我不知道你从哪里得到这个例子,但这是
useSession
类型:它没有
update
方法。如果你想刷新token,你必须向提供者发出post请求。因为只有提供者服务器可以处理token。From here