UNPKG

@auth/core

Version:

Authentication for the Web.

30 lines (29 loc) 919 B
/** * Returns the currently logged in user, if any. */ export async function getLoggedInUser(options, sessionStore) { const { adapter, jwt, session: { strategy: sessionStrategy }, } = options; const sessionToken = sessionStore.value; if (!sessionToken) return null; // Try to decode JWT if (sessionStrategy === "jwt") { const salt = options.cookies.sessionToken.name; const payload = await jwt.decode({ ...jwt, token: sessionToken, salt }); if (payload && payload.sub) { return { id: payload.sub, name: payload.name, email: payload.email, image: payload.picture, }; } } else { const userAndSession = await adapter?.getSessionAndUser(sessionToken); if (userAndSession) { return userAndSession.user; } } return null; }