import { NextAuthOptions } from "next-auth";
import GitHubProvider from "next-auth/providers/github";
export const nextAuthConfig = {
providers: [
GitHubProvider({
clientId: process.env.GITHUB_ID!,
clientSecret: process.env.GITHUB_SECRET!,
}),
],
} satisfies NextAuthOptions;
当对用户进行认证时,我会收到他们的电子邮件。从那里开始,我应该如何评估其在OAUTH方案方面的作用? 我最初的想法是根据电子邮件在数据库中获得角色。然后,我需要将此角色存储在相关的位置,因此可能在数据库中的用户会话中(假设角色不会经常更改以简化问题),或者在JWT中进行。
成功身份验证后,我应该如何将角色归因于用户?
更完整的Oauth流动如下:
您的下一个应用程序将重定向到您的授权服务器(AS),您存储用户帐户和任何自定义字段(例如角色)
AS可以使用各种登录方法,包括身份提供商(IDP),例如GitHub。然后,它可以使用从IDP返回的值(如电子邮件)来识别用户帐户,然后将任何用户帐户值发布给返回您的应用程序的任何用户帐户值。
interface Claims {
idTokenClaims: any:
customClaims: any;
}
,进行数据库查找并使用额外属性更新
token