rewardwee_auth_access
Version:
auth verify access for all microservices
118 lines (117 loc) • 3.84 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.isTalent = exports.isCompany = exports.isTokenCorrect = void 0;
const misc_1 = require("../helpers/misc");
const login_1 = require("../controllers/login");
function extractTokenFromHeader(header) {
if (header == undefined) {
return undefined;
}
const parts = header.split(' ');
if (parts.length === 3 && parts[0] === 'Bearer') {
// console.log({part1: parts[1], part2: parts[2] })
return [parts[1], parts[2]];
}
return undefined;
}
const isTokenCorrect = (req, res, next) => {
const authHeader = req.headers.authorization;
const tokenData = extractTokenFromHeader(authHeader);
// console.log({authHeader, tokenData})
if (tokenData != undefined) {
let token = tokenData[0];
// get token
(0, misc_1.extractTokenContent)(token, req.body.jk)
.then((verified) => {
console.log({ verified, data: verified.data[0] });
delete req.body.jk;
let { id, email, time, role } = verified.data[0];
let user_id = tokenData[1];
console.log({ token, user_id });
if (id != user_id) {
let error = {
data: [],
message: "invalid login token.",
status: 400,
statusCode: "LOGIN_FAILED"
};
console.log({ error });
(0, misc_1.response)(res, error);
return;
}
login_1.AuthLogin.isUserLoggedIn(id, token, req.body.UserLoginRecord)
.then((success) => {
delete req.body.UserLoginRecord;
if (success.statusCode == "LOGIN_SUCCESSFUL") {
req.user_id = id;
req.user_email = email;
req.user_token = token;
req.role = role;
next();
}
else {
(0, misc_1.response)(res, success);
return;
}
})
.catch((err) => {
delete req.body.UserLoginRecord;
(0, misc_1.response)(res, err);
return;
});
})
.catch((err) => {
console.log({ err });
delete req.body.jk;
(0, misc_1.response)(res, err);
return;
});
}
else {
let error = {
data: [],
message: "invalid login token.",
status: 400,
statusCode: "LOGIN_FAILED"
};
console.log({ error });
(0, misc_1.response)(res, error);
return;
}
};
exports.isTokenCorrect = isTokenCorrect;
const isCompany = (req, res, next) => {
var _a;
console.log({ role: req.role });
if (((_a = req.role) === null || _a === void 0 ? void 0 : _a.toLowerCase()) == "company") {
next();
}
else {
let error = {
data: [],
message: "access denied.",
status: 403,
statusCode: "LOGIN_FAILED"
};
(0, misc_1.response)(res, error);
return;
}
};
exports.isCompany = isCompany;
const isTalent = (req, res, next) => {
var _a;
if (((_a = req.role) === null || _a === void 0 ? void 0 : _a.toLowerCase()) == "talent") {
next();
}
else {
let error = {
data: [],
message: "access denied.",
status: 403,
statusCode: "LOGIN_FAILED"
};
(0, misc_1.response)(res, error);
return;
}
};
exports.isTalent = isTalent;