@accounts/rest-express
Version:
Server side REST express middleware for accounts
77 lines • 4.44 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 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
;