根据官方文档next-auth Github Provider,我设法为我的应用程序实现了Next-auth Github提供商的SSO。Client API文档建议使用useSession()来获取会话,但没有返回Github username(这是我需要的)。因此,我所做的就是覆盖配置文件响应(参见下面的代码片段)。正如你所看到的,我记录了配置文件,但只是在终端输出上。
所以我想知道如何在前端消费profile数据。
谢谢
export default NextAuth({
providers: [
GithubProvider({
clientId: process.env.CLIENT_ID,
clientSecret: process.env.CLIENT_SECRET,
async profile(profile: GithubProfile) {
console.log('profile', profile)
return {
id: profile.id.toString(),
name: profile.name,
userName: profile.login,
email: profile.email,
image: profile.avatar_url,
}
},
}),
],
})
1条答案
按热度按时间r7s23pms1#
如果你想在客户端获取配置文件数据,你可以通过以下方式:
1.在SSR中获取数据并将其发送到客户端
1.在客户端发出一个API请求,在
/api/
路径中发出一个API处理程序,以发送对请求的响应,并仅在后端使用client_secret
,并将配置文件数据发送到客户端。1.(推荐)->创建一个API处理程序,并使用JWT方法将数据保存在cookie中。这对服务器来说是安全的和好的。因为你不必每次都要求取。你的秘密数据将是秘密的:)