@63pokupki/nodejs-common
Version:
Common nodejs functionality
47 lines • 2.17 kB
JavaScript
;
/**
* Ответ декодиирования тикена
* Должен обновляться каждую неделю
* Время действия токена 1 месяц
* Если пользователь постоянно пользуется сайтом у него будет ощущение бесконечного токена
* Токен скрыто обновляется если он старше 1 недели
*/
Object.defineProperty(exports, "__esModule", { value: true });
const AccessSys_1 = require("../AccessSys");
const ApiRequest_1 = require("../ApiRequest");
const UserSys_1 = require("../UserSys");
/** проверка аутентификации на уровне приложения */
async function AuthSysMiddleware(ctx) {
ctx.sys.apikey = ctx.cookies.apikey || ctx.headers.apikey || '';
ctx.sys.srvkey = ctx.headers.srvkey || '';
ctx.apikey = ctx.sys.apikey;
/* юзерь не авторизован */
ctx.sys.bAuth = false;
const userSys = new UserSys_1.UserSys(ctx);
if (ctx.sys.apikey) {
// Инициализируем систему для пользователей
try { // отправка ошибки в апи
const vAuthResp = await (0, ApiRequest_1.faApiRequest)(ctx, ctx.common.hook_url_auth, { apikey: ctx.sys.apikey });
userSys.init({
vUser: vAuthResp.user_info,
aGroup: vAuthResp.list_group,
ixRole: vAuthResp.ix_role,
ixOrgRole: vAuthResp.ix_org_role,
ixRoleRoute: vAuthResp.ix_role_route,
ixOrgRoleRoute: vAuthResp.ix_org_role_route,
});
}
catch (e) {
userSys.init();
ctx.sys.errorSys.warning('auth_check', 'Ошибка проверки авторизации');
}
}
else {
ctx.sys.errorSys.devNotice('is_auth', 'Вы не авторизованы');
}
ctx.sys.userSys = userSys;
ctx.sys.accessSys = new AccessSys_1.AccessSys(ctx);
ctx.next();
}
exports.default = AuthSysMiddleware;
//# sourceMappingURL=AuthSysMiddleware.js.map