@youngshand/payload-auth-plugin
Version:
A temporary fork for testing of Authentication plugin for Payload CMS, use @payload-auth-plugin
35 lines (33 loc) • 1.17 kB
text/typescript
import type { PayloadRequest } from "payload"
import { InvalidAPIRequest } from "../errors/apiErrors.js"
import { InitPasskey } from "../protocols/passkey/index.js"
import { AccountInfo } from "../../types.js"
import {
GeneratePasskeyRegistration,
VerifyPasskeyRegistration,
} from "../protocols/passkey/registration.js"
import {
GeneratePasskeyAuthentication,
VerifyPasskeyAuthentication,
} from "../protocols/passkey/authentication.js"
export function PasskeyHandlers(
request: PayloadRequest,
resource: string,
rpID: string,
sessionCallBack: (accountInfo: AccountInfo) => Promise<Response>,
): Promise<Response> {
switch (resource) {
case "init":
return InitPasskey(request)
case "generate-registration-options":
return GeneratePasskeyRegistration(request, rpID)
case "verify-registration":
return VerifyPasskeyRegistration(request, rpID, sessionCallBack)
case "generate-authentication-options":
return GeneratePasskeyAuthentication(request, rpID)
case "verify-authentication":
return VerifyPasskeyAuthentication(request, rpID, sessionCallBack)
default:
throw new InvalidAPIRequest()
}
}