UNPKG

payload-authjs

Version:

A Payload CMS 3 plugin for Auth.js 5

34 lines (33 loc) 1.34 kB
import { getAuthjsInstance } from "../../../authjs/getAuthjsInstance.js"; import { getAllVirtualFields } from "../../utils/getAllVirtualFields.js"; import { getUserAttributes } from "../../utils/getUserAttributes.js"; /** * Add me hook to override the me endpoint to include 'exp' and virtual fields * * @see https://payloadcms.com/docs/hooks/collections#me * @see https://github.com/payloadcms/payload/blob/main/packages/payload/src/auth/operations/me.ts */ export const meHook = (collection)=>{ // Get all virtual fields const virtualFields = getAllVirtualFields(collection.fields); // Return the me hook return async ({ args: { req, collection }, user })=>{ // Get session from authjs const { auth } = getAuthjsInstance(req.payload, collection.config.slug); const session = await auth(); // If no session, return if (!session?.user) { return undefined; } // Get user virtual fields const virtualSessionFields = getUserAttributes(session.user, virtualFields); // Return user to payload cms return { exp: Math.floor(new Date(session.expires).getTime() / 1000), user: { ...user, ...virtualSessionFields } }; }; }; //# sourceMappingURL=me.js.map