metamigo: store user info in nextauth session

This commit is contained in:
Abel Luck 2023-06-07 11:28:18 +00:00
parent 11c595619d
commit cdccc7f062
2 changed files with 7 additions and 16 deletions

View file

@ -70,20 +70,10 @@ const nextAuthOptions = (config: IAppConfig, req: NextApiRequest) => {
providers,
adapter,
callbacks: {
async jwt(token: any, user: any) {
const isSignIn = Boolean(user);
// Add auth_time to token on signin in
if (isSignIn) {
// not sure what this does
// if (!token.aud) token.aud;
token.aud = nextAuth.audience;
token.picture = user.avatar;
token.userId = user.id;
token.role = user.userRole ? `app_${user.userRole}` : "app_anonymous";
}
return token;
async session({session, token, user}) {
session.user.id = user.id
session.user.userRole = user.userRole;
return session;
},
},
};

View file

@ -142,7 +142,7 @@ export class NextAuthAdapter<TRepositories extends IMetamigoRepositories> {
async getSessionAndUser(
sessionToken: string
): Promise<{ session: AdapterSession; user: AdapterUser } | null> {
): Promise<{ session: AdapterSession; user: any } | null> {
const session = await this.repos.sessions.findBy({ sessionToken });
if (!session) return null;
if (session && session.expires && new Date() > session.expires) {
@ -159,10 +159,11 @@ export class NextAuthAdapter<TRepositories extends IMetamigoRepositories> {
sessionToken: sessionToken,
};
const adapterUser: AdapterUser = {
const adapterUser: any = {
id: user.id,
email: user.email,
emailVerified: user.emailVerified,
userRole: user.userRole
};
return { session: adapterSession, user: adapterUser };