UNPKG

payload-auth-plugin

Version:
44 lines (43 loc) 1.62 kB
// src/core/routeHandlers/oauth.ts import { InvalidOAuthAlgorithm, InvalidOAuthResource, InvalidProvider } from "../errors/consoleErrors.js"; import { OIDCAuthorization } from "../protocols/oauth/oidc_authorization.js"; import { OAuth2Authorization } from "../protocols/oauth/oauth2_authorization.js"; import { OIDCCallback } from "../protocols/oauth/oidc_callback.js"; import { OAuth2Callback } from "../protocols/oauth/oauth2_callback.js"; function OAuthHandlers(pluginType, collections, allowOAuthAutoSignUp, secret, useAdmin, request, provider, successRedirectPath, errorRedirectPath) { if (!provider) { throw new InvalidProvider; } const resource = request.routeParams?.resource; switch (resource) { case "authorization": switch (provider.algorithm) { case "oidc": return OIDCAuthorization(pluginType, request, provider); case "oauth2": return OAuth2Authorization(pluginType, request, provider); default: throw new InvalidOAuthAlgorithm; } case "callback": switch (provider.algorithm) { case "oidc": { return OIDCCallback(pluginType, request, provider, collections, allowOAuthAutoSignUp, useAdmin, secret, successRedirectPath, errorRedirectPath); } case "oauth2": { return OAuth2Callback(pluginType, request, provider, collections, allowOAuthAutoSignUp, useAdmin, secret, successRedirectPath, errorRedirectPath); } default: throw new InvalidOAuthAlgorithm; } default: throw new InvalidOAuthResource; } } export { OAuthHandlers };