payload-auth-plugin
Version:
Authentication plugin for Payload CMS
40 lines (36 loc) • 1.03 kB
text/typescript
import type { PayloadRequest } from "payload"
import { InvalidAPIRequest } from "../errors/apiErrors.js"
import {
SessionRefresh,
SessionSignout,
SessionUser,
} from "../protocols/session.js"
import { APP_COOKIE_SUFFIX } from "../../constants.js"
export function SessionHandlers(
request: PayloadRequest,
pluginType: string,
internals: {
usersCollectionSlug: string
},
) {
if (pluginType === "admin") {
// TODO: Implementation is not necessary as it is already handled by Payload. But can be customised.
throw new InvalidAPIRequest()
}
const kind = request.routeParams?.kind as string
switch (kind) {
case "refresh":
return SessionRefresh(`__${pluginType}-${APP_COOKIE_SUFFIX}`, request)
case "user":
return SessionUser(
`__${pluginType}-${APP_COOKIE_SUFFIX}`,
request,
internals,
[],
)
case "signout":
return SessionSignout(`__${pluginType}-${APP_COOKIE_SUFFIX}`, request)
default:
throw new InvalidAPIRequest()
}
}