UNPKG

payload-auth-plugin-fix

Version:
48 lines (46 loc) 1.28 kB
// src/core/endpoints.ts import { OAuthHandlers } from "./routeHandlers/oauth.js"; import { PasskeyHandlers } from "./routeHandlers/passkey.js"; class EndpointFactory { #providers; #payloadOAuthPath = "/admin/oauth/:resource/:provider"; #payloadPasskeyPath = "/admin/passkey/:resource"; constructor(providers) { this.#providers = providers; } payloadOAuthEndpoints({ sessionCallback }) { return [ { path: this.#payloadOAuthPath, method: "get", handler: (request) => { const provider = this.#providers[request.routeParams?.provider]; return OAuthHandlers(request, request.routeParams?.resource, provider, (oauthAccountInfo) => { return sessionCallback(oauthAccountInfo, provider.scope, provider.name, request.payload); }); } } ]; } payloadPasskeyEndpoints({ rpID, sessionCallback }) { return [ { path: this.#payloadPasskeyPath, method: "post", handler: (request) => { return PasskeyHandlers(request, request.routeParams?.resource, rpID, (accountInfo) => { return sessionCallback(accountInfo, "Passkey", request.payload); }); } } ]; } } export { EndpointFactory };