UNPKG

@auth/core

Version:

Authentication for the Web.

42 lines (36 loc) 990 B
import type { InternalOptions, User } from "../../types.js" import type { SessionStore } from "./cookie.js" /** * Returns the currently logged in user, if any. */ export async function getLoggedInUser( options: InternalOptions, sessionStore: SessionStore ): Promise<User | null> { 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 }