@qelos/auth
Version:
Express Passport authentication service
83 lines (82 loc) • 2.65 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.tokenPayload = exports.validateSignInForm = exports.validateSignUpForm = void 0;
const users_1 = require("../services/users");
const { validateBasicSignUpForm, } = require("../../helpers/form-validations");
const { setCookie } = require("../services/tokens");
/**
* Validate the sign up form
*
* @param {object} payload - the HTTP body message
* @returns {object} The result of validation. Object contains a boolean validation result,
* errors tips, and a global message for the whole form.
*/
function validateSignUpForm(payload) {
const errors = validateBasicSignUpForm(payload);
if (!payload ||
typeof payload.firstName !== "string" ||
!/^[a-zA-Z]+([\-\s]?[a-zA-Z]+)*$/.test(payload.firstName.trim())) {
errors.firstName = {
code: "INVALID_NAME",
};
}
if (!payload ||
typeof payload.password !== "string" ||
payload.password.trim().length < 8) {
errors.password = {
code: "INVALID_PASSWORD",
};
}
return errors;
}
exports.validateSignUpForm = validateSignUpForm;
/**
* Validate the login form
*
* @param {object} payload - the HTTP body message
* @returns {object} The result of validation. Object contains a boolean validation result,
* errors tips, and a global message for the whole form.
*/
function validateSignInForm(payload) {
const errors = {};
if (!payload ||
typeof payload.password !== "string" ||
payload.password.trim().length === 0) {
errors.password = {
code: "EMPTY_PASSWORD",
};
}
return errors;
}
exports.validateSignInForm = validateSignInForm;
function tokenPayload(host, res, data) {
const { tenant, token, refreshToken, cookieToken, user, workspace } = data;
if (cookieToken) {
res = setCookie(res, (0, users_1.getCookieTokenName)(tenant), cookieToken, null, host);
return res
.status(200)
.json({
payload: { user, workspace },
})
.end();
}
else {
return res
.status(200)
.json({
payload: {
token,
refreshToken,
user,
workspace: workspace && {
_id: workspace._id,
name: workspace.name,
roles: workspace.roles,
labels: workspace.labels
}
},
})
.end();
}
}
exports.tokenPayload = tokenPayload;