UNPKG

@qelos/auth

Version:

Express Passport authentication service

47 lines (46 loc) 1.74 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.signup = void 0; const passport_1 = __importDefault(require("passport")); const api_kit_1 = require("@qelos/api-kit"); const signin_signup_token_1 = require("./signin-signup-token"); const req_host_1 = require("../services/req-host"); function signup(req, res, next) { const validationErrors = (0, signin_signup_token_1.validateSignUpForm)(req.body); if (Object.keys(validationErrors).length > 0) { return res.json({ errors: validationErrors }); } return passport_1.default.authenticate('local-signup', (err, data) => { if (err) { if (err.name === 'MongoError' && err.code === 11000) { // the 11000 Mongo code is for a duplication email error return res.json({ errors: { email: 'DUPLICATED_EMAIL' } }); } return res.json({ errors: { '': 'FORM_SUBMISSION_FAILED' } }); } (0, signin_signup_token_1.tokenPayload)((0, req_host_1.getRequestHost)(req), res, data); (0, api_kit_1.emitPlatformEvent)({ tenant: req.headers.tenant, user: data.user._id, source: 'auth', kind: 'signup', eventName: 'user-registered', description: 'user registered', metadata: { user: data.user, } }); })(req, res, next); } exports.signup = signup;