UNPKG

payload-authjs

Version:
29 lines (28 loc) 1.2 kB
import { revalidateTag } from "next/cache"; import { cookies } from "next/headers"; import { getAuthjsInstance } from "../../../authjs/getAuthjsInstance"; import { AUTHJS_STRATEGY_NAME } from "../../../constants"; /** * Add logout hook to destroy the authjs session * * @see https://payloadcms.com/docs/hooks/collections#afterlogout * @see https://github.com/payloadcms/payload/blob/main/packages/payload/src/auth/operations/logout.ts */ export const logoutHook = async ({ req, collection })=>{ // Check if user is authenticated using the authjs strategy if (req.user?._strategy !== AUTHJS_STRATEGY_NAME) { return; } const { signOut } = getAuthjsInstance(req.payload, collection.slug); // Sign out and generate expired cookies using authjs const { cookies: authJsCookies } = await signOut({ redirect: false }); // Destroy the authjs session cookies const requestCookies = await cookies(); for (const cookie of authJsCookies){ requestCookies.set(cookie.name, cookie.value, cookie.options); } // Revalidate the cache for the payload session revalidateTag("payload-session", "minutes"); }; //# sourceMappingURL=logout.js.map