嗨,我是nextjs的新手,我使用next-auth进行身份验证。用户可以使用Google登录,当他们登录并通过身份验证时,我希望获得提供商(在本例中为Google)提供的access_token。虽然我可以获得内部signIn回调函数,但是否有办法全局访问该函数?
ippsafx71#
你也可以在nextAuth配置中创建回调键来访问你的userId和access_token。
callbacks: { async session({ session, token, user }) { session.user.id = token.id; session.accessToken = token.accessToken; return session; }, async jwt({ token, user, account, profile, isNewUser }) { if (user) { token.id = user.id; } if (account) { token.accessToken = account.access_token; } return token; }, },
ccgok5k52#
请参考这个post,我认为这会有所帮助。请注意next-auth版本,在V4中,您可以通过以下方式访问访问令牌:account.access_token,V4之前为account. access令牌。此外,此link将有助于next 0auth V4中的回调。
f4t66c6m3#
用于凭据登录使用如下回调
callbacks: { jwt: async ({ token, user }) => { user && (token.user = user) return token }, session: async ({ session, token }) => { session.user = token.user return session } }
然后在页面导入中
import { getSession ,useSession, signIn, signOut } from "next-auth/react";
并将其用于获取令牌
const { data: token, status } = useSession() console.log(token)
型要获取会话,请使用此
const { data: session, status } = useSession() console.log(session)
cxfofazt4#
您可以使用getSession方法访问它,该方法可以在服务器端(即getServerSideProps之类的next.js方法)和客户端(即普通的react组件)使用。参见:https://next-auth.js.org/getting-started/client#getsession
getSession
getServerSideProps
yeotifhr5#
callbacks: { async jwt({ token, user, account, profile, isNewUser }) { if (account) { console.log(account.id_token) } }, },
5条答案
按热度按时间ippsafx71#
你也可以在nextAuth配置中创建回调键来访问你的userId和access_token。
ccgok5k52#
请参考这个post,我认为这会有所帮助。
请注意next-auth版本,在V4中,您可以通过以下方式访问访问令牌:account.access_token,V4之前为account. access令牌。
此外,此link将有助于next 0auth V4中的回调。
f4t66c6m3#
用于凭据登录
使用如下回调
然后在页面导入中
并将其用于获取令牌
型
要获取会话,请使用此
cxfofazt4#
您可以使用
getSession
方法访问它,该方法可以在服务器端(即getServerSideProps
之类的next.js方法)和客户端(即普通的react组件)使用。参见:https://next-auth.js.org/getting-started/client#getsession
yeotifhr5#