nralcm
Version:
This is a framework based on NodeJs to manage rest api request lifecycle
36 lines (35 loc) • 1.32 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const jwt = require("jsonwebtoken");
const app_config_1 = require("../app-config");
const exceptions_1 = require("../exceptions");
const jwt_AuthPrinciple_1 = require("../infrastructure/jwt-AuthPrinciple");
/**
* Authentication for authentication of request
*/
class AuthenticationFilter {
/**
* Method for check authentication of request
* @param context HttpContext Object
* @returns true, If not authenticated throws UnAuthenticateException
*/
authenticate(context) {
const authorizationHeader = context.request.header("Authorization");
if (authorizationHeader) {
const tokenparts = authorizationHeader.split(" ");
if (tokenparts[0] === "Bearer") {
try {
const tokenData = jwt.verify(tokenparts[1], app_config_1.AppConfig.secret);
context.user = new jwt_AuthPrinciple_1.JwtAuthPrinciple(tokenData.Email, tokenData.Role);
}
catch (_a) {
throw new exceptions_1.TokenNotValidException();
}
return true;
}
return false;
}
return false;
}
}
exports.AuthenticationFilter = AuthenticationFilter;