metamigo: store user info in nextauth session
This commit is contained in:
parent
11c595619d
commit
cdccc7f062
2 changed files with 7 additions and 16 deletions
|
|
@ -70,20 +70,10 @@ const nextAuthOptions = (config: IAppConfig, req: NextApiRequest) => {
|
||||||
providers,
|
providers,
|
||||||
adapter,
|
adapter,
|
||||||
callbacks: {
|
callbacks: {
|
||||||
async jwt(token: any, user: any) {
|
async session({session, token, user}) {
|
||||||
const isSignIn = Boolean(user);
|
session.user.id = user.id
|
||||||
// Add auth_time to token on signin in
|
session.user.userRole = user.userRole;
|
||||||
if (isSignIn) {
|
return session;
|
||||||
// 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;
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -142,7 +142,7 @@ export class NextAuthAdapter<TRepositories extends IMetamigoRepositories> {
|
||||||
|
|
||||||
async getSessionAndUser(
|
async getSessionAndUser(
|
||||||
sessionToken: string
|
sessionToken: string
|
||||||
): Promise<{ session: AdapterSession; user: AdapterUser } | null> {
|
): Promise<{ session: AdapterSession; user: any } | null> {
|
||||||
const session = await this.repos.sessions.findBy({ sessionToken });
|
const session = await this.repos.sessions.findBy({ sessionToken });
|
||||||
if (!session) return null;
|
if (!session) return null;
|
||||||
if (session && session.expires && new Date() > session.expires) {
|
if (session && session.expires && new Date() > session.expires) {
|
||||||
|
|
@ -159,10 +159,11 @@ export class NextAuthAdapter<TRepositories extends IMetamigoRepositories> {
|
||||||
sessionToken: sessionToken,
|
sessionToken: sessionToken,
|
||||||
};
|
};
|
||||||
|
|
||||||
const adapterUser: AdapterUser = {
|
const adapterUser: any = {
|
||||||
id: user.id,
|
id: user.id,
|
||||||
email: user.email,
|
email: user.email,
|
||||||
emailVerified: user.emailVerified,
|
emailVerified: user.emailVerified,
|
||||||
|
userRole: user.userRole
|
||||||
};
|
};
|
||||||
|
|
||||||
return { session: adapterSession, user: adapterUser };
|
return { session: adapterSession, user: adapterUser };
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue