UNPKG

@accounts/rest-express

Version:

Server side REST express middleware for accounts

77 lines 4.44 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const provider_callback_1 = require("./endpoints/oauth/provider-callback"); const reset_1 = require("./endpoints/password/reset"); const verify_email_1 = require("./endpoints/password/verify-email"); const express = tslib_1.__importStar(require("express")); const requestIp = tslib_1.__importStar(require("request-ip")); const refresh_access_token_1 = require("./endpoints/refresh-access-token"); const get_user_1 = require("./endpoints/get-user"); const impersonate_1 = require("./endpoints/impersonate"); const logout_1 = require("./endpoints/logout"); const service_authenticate_1 = require("./endpoints/service-authenticate"); const verify_authentication_1 = require("./endpoints/verify-authentication"); const register_1 = require("./endpoints/password/register"); const two_factor_1 = require("./endpoints/password/two-factor"); const change_password_1 = require("./endpoints/password/change-password"); const add_email_1 = require("./endpoints/password/add-email"); const user_loader_1 = require("./user-loader"); const get_user_agent_1 = require("./utils/get-user-agent"); const request_magic_link_email_1 = require("./endpoints/magic-link/request-magic-link-email"); const defaultOptions = { path: '/accounts', }; const accountsExpress = (accountsServer, options = {}) => { options = { ...defaultOptions, ...options }; let { path } = options; // Stop invalid double slash root path if (path === '/') { path = ''; } const router = express.Router(); /** * Middleware to populate the user agent and ip. */ router.use((req, _, next) => { const userAgent = get_user_agent_1.getUserAgent(req); const ip = requestIp.getClientIp(req); req.infos = { userAgent, ip, }; next(); }); router.post(`${path}/impersonate`, impersonate_1.impersonate(accountsServer)); router.get(`${path}/user`, user_loader_1.userLoader(accountsServer), get_user_1.getUser()); router.post(`${path}/user`, user_loader_1.userLoader(accountsServer), get_user_1.getUser()); router.post(`${path}/refreshTokens`, refresh_access_token_1.refreshAccessToken(accountsServer)); router.post(`${path}/logout`, user_loader_1.userLoader(accountsServer), logout_1.logout(accountsServer)); router.post(`${path}/:service/verifyAuthentication`, verify_authentication_1.serviceVerifyAuthentication(accountsServer)); router.post(`${path}/:service/authenticate`, service_authenticate_1.serviceAuthenticate(accountsServer)); const services = accountsServer.getServices(); // @accounts/password if (services.password) { router.post(`${path}/password/register`, register_1.registerPassword(accountsServer)); router.post(`${path}/password/verifyEmail`, verify_email_1.verifyEmail(accountsServer)); router.post(`${path}/password/resetPassword`, reset_1.resetPassword(accountsServer)); router.post(`${path}/password/sendVerificationEmail`, verify_email_1.sendVerificationEmail(accountsServer)); router.post(`${path}/password/sendResetPasswordEmail`, reset_1.sendResetPasswordEmail(accountsServer)); router.post(`${path}/password/addEmail`, user_loader_1.userLoader(accountsServer), add_email_1.addEmail(accountsServer)); router.post(`${path}/password/changePassword`, user_loader_1.userLoader(accountsServer), change_password_1.changePassword(accountsServer)); router.post(`${path}/password/twoFactorSecret`, user_loader_1.userLoader(accountsServer), two_factor_1.twoFactorSecret(accountsServer)); router.post(`${path}/password/twoFactorSet`, user_loader_1.userLoader(accountsServer), two_factor_1.twoFactorSet(accountsServer)); router.post(`${path}/password/twoFactorUnset`, user_loader_1.userLoader(accountsServer), two_factor_1.twoFactorUnset(accountsServer)); } // @accounts/magic-link if (services.magicLink) { router.post(`${path}/magiclink/requestMagicLinkEmail`, request_magic_link_email_1.requestMagicLinkEmail(accountsServer)); } // @accounts/oauth if (services.oauth) { router.get(`${path}/oauth/:provider/callback`, provider_callback_1.providerCallback(accountsServer, options)); } return router; }; exports.default = accountsExpress; //# sourceMappingURL=express-middleware.js.map