@accounts/rest-express
Version:
Server side REST express middleware for accounts
75 lines • 4.53 kB
JavaScript
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 request_ip_1 = 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) => {
req.infos = {
userAgent: (0, get_user_agent_1.getUserAgent)(req),
ip: (0, request_ip_1.getClientIp)(req) ?? req.ip,
};
next();
});
router.post(`${path}/impersonate`, (0, impersonate_1.impersonate)(accountsServer));
router.get(`${path}/user`, (0, user_loader_1.userLoader)(accountsServer), (0, get_user_1.getUser)());
router.post(`${path}/user`, (0, user_loader_1.userLoader)(accountsServer), (0, get_user_1.getUser)());
router.post(`${path}/refreshTokens`, (0, refresh_access_token_1.refreshAccessToken)(accountsServer));
router.post(`${path}/logout`, (0, user_loader_1.userLoader)(accountsServer), (0, logout_1.logout)(accountsServer));
router.post(`${path}/:service/verifyAuthentication`, (0, verify_authentication_1.serviceVerifyAuthentication)(accountsServer));
router.post(`${path}/:service/authenticate`, (0, service_authenticate_1.serviceAuthenticate)(accountsServer));
const services = accountsServer.getServices();
// @accounts/password
if (services.password) {
router.post(`${path}/password/register`, (0, register_1.registerPassword)(accountsServer));
router.post(`${path}/password/verifyEmail`, (0, verify_email_1.verifyEmail)(accountsServer));
router.post(`${path}/password/resetPassword`, (0, reset_1.resetPassword)(accountsServer));
router.post(`${path}/password/sendVerificationEmail`, (0, verify_email_1.sendVerificationEmail)(accountsServer));
router.post(`${path}/password/sendResetPasswordEmail`, (0, reset_1.sendResetPasswordEmail)(accountsServer));
router.post(`${path}/password/addEmail`, (0, user_loader_1.userLoader)(accountsServer), (0, add_email_1.addEmail)(accountsServer));
router.post(`${path}/password/changePassword`, (0, user_loader_1.userLoader)(accountsServer), (0, change_password_1.changePassword)(accountsServer));
router.post(`${path}/password/twoFactorSecret`, (0, user_loader_1.userLoader)(accountsServer), (0, two_factor_1.twoFactorSecret)(accountsServer));
router.post(`${path}/password/twoFactorSet`, (0, user_loader_1.userLoader)(accountsServer), (0, two_factor_1.twoFactorSet)(accountsServer));
router.post(`${path}/password/twoFactorUnset`, (0, user_loader_1.userLoader)(accountsServer), (0, two_factor_1.twoFactorUnset)(accountsServer));
}
// @accounts/magic-link
if (services.magicLink) {
router.post(`${path}/magiclink/requestMagicLinkEmail`, (0, request_magic_link_email_1.requestMagicLinkEmail)(accountsServer));
}
// @accounts/oauth
if (services.oauth) {
router.get(`${path}/oauth/:provider/callback`, (0, provider_callback_1.providerCallback)(accountsServer, options));
}
return router;
};
exports.default = accountsExpress;
//# sourceMappingURL=express-middleware.js.map
;