UNPKG

4.15 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const tslib_1 = require("tslib");
4const provider_callback_1 = require("./endpoints/oauth/provider-callback");
5const reset_1 = require("./endpoints/password/reset");
6const verify_email_1 = require("./endpoints/password/verify-email");
7const express = tslib_1.__importStar(require("express"));
8const requestIp = tslib_1.__importStar(require("request-ip"));
9const refresh_access_token_1 = require("./endpoints/refresh-access-token");
10const get_user_1 = require("./endpoints/get-user");
11const impersonate_1 = require("./endpoints/impersonate");
12const logout_1 = require("./endpoints/logout");
13const service_authenticate_1 = require("./endpoints/service-authenticate");
14const verify_authentication_1 = require("./endpoints/verify-authentication");
15const register_1 = require("./endpoints/password/register");
16const two_factor_1 = require("./endpoints/password/two-factor");
17const change_password_1 = require("./endpoints/password/change-password");
18const add_email_1 = require("./endpoints/password/add-email");
19const user_loader_1 = require("./user-loader");
20const get_user_agent_1 = require("./utils/get-user-agent");
21const defaultOptions = {
22 path: '/accounts',
23};
24const accountsExpress = (accountsServer, options = {}) => {
25 options = { ...defaultOptions, ...options };
26 let { path } = options;
27 // Stop invalid double slash root path
28 if (path === '/') {
29 path = '';
30 }
31 const router = express.Router();
32 /**
33 * Middleware to populate the user agent and ip.
34 */
35 router.use((req, _, next) => {
36 const userAgent = get_user_agent_1.getUserAgent(req);
37 const ip = requestIp.getClientIp(req);
38 req.infos = {
39 userAgent,
40 ip,
41 };
42 next();
43 });
44 router.post(`${path}/impersonate`, impersonate_1.impersonate(accountsServer));
45 router.get(`${path}/user`, user_loader_1.userLoader(accountsServer), get_user_1.getUser());
46 router.post(`${path}/user`, user_loader_1.userLoader(accountsServer), get_user_1.getUser());
47 router.post(`${path}/refreshTokens`, refresh_access_token_1.refreshAccessToken(accountsServer));
48 router.post(`${path}/logout`, user_loader_1.userLoader(accountsServer), logout_1.logout(accountsServer));
49 router.post(`${path}/:service/verifyAuthentication`, verify_authentication_1.serviceVerifyAuthentication(accountsServer));
50 router.post(`${path}/:service/authenticate`, service_authenticate_1.serviceAuthenticate(accountsServer));
51 const services = accountsServer.getServices();
52 // @accounts/password
53 if (services.password) {
54 router.post(`${path}/password/register`, register_1.registerPassword(accountsServer));
55 router.post(`${path}/password/verifyEmail`, verify_email_1.verifyEmail(accountsServer));
56 router.post(`${path}/password/resetPassword`, reset_1.resetPassword(accountsServer));
57 router.post(`${path}/password/sendVerificationEmail`, verify_email_1.sendVerificationEmail(accountsServer));
58 router.post(`${path}/password/sendResetPasswordEmail`, reset_1.sendResetPasswordEmail(accountsServer));
59 router.post(`${path}/password/addEmail`, user_loader_1.userLoader(accountsServer), add_email_1.addEmail(accountsServer));
60 router.post(`${path}/password/changePassword`, user_loader_1.userLoader(accountsServer), change_password_1.changePassword(accountsServer));
61 router.post(`${path}/password/twoFactorSecret`, user_loader_1.userLoader(accountsServer), two_factor_1.twoFactorSecret(accountsServer));
62 router.post(`${path}/password/twoFactorSet`, user_loader_1.userLoader(accountsServer), two_factor_1.twoFactorSet(accountsServer));
63 router.post(`${path}/password/twoFactorUnset`, user_loader_1.userLoader(accountsServer), two_factor_1.twoFactorUnset(accountsServer));
64 }
65 // @accounts/oauth
66 if (services.oauth) {
67 router.get(`${path}/oauth/:provider/callback`, provider_callback_1.providerCallback(accountsServer, options));
68 }
69 return router;
70};
71exports.default = accountsExpress;
72//# sourceMappingURL=express-middleware.js.map
\No newline at end of file