UNPKG

@htilssu/wowo

Version:

Module tương tác với ứng dụng e-wallet môn học CNPM-DAPM

59 lines 1.85 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.useSSOCallback = useSSOCallback; const axios_1 = __importDefault(require("axios")); const jwt_1 = require("../jwt"); const req = axios_1.default.create({}); /** * Hàm đăng ký middleware cho việc xác thực SSO bao gồm: * - Xác thực token * - Lưu token vào cookie (sso callback) * ```js * const {useSSOCallback} = require('@htilssu/sso'); * const express = require('express'); * * const app = express(); * * useSSOCallback(app); //Add middleware handle verify token * ``` * @remarks Hàm này phải được gọi sau khi sử dụng parseCookie không sẽ throw ra lỗi * @param app express instance */ function useSSOCallback(app) { app.use(async (req, res, next) => { const token = req.cookies["Token"]; if (!token) { // @ts-ignore res.locals.user = null; next(); return; } const payload = (await (0, jwt_1.verify)(token))?.payload; if (!payload) { // @ts-ignore res.locals.user = null; next(); return; } // @ts-ignore if (payload.role === 'user') { payload.id = payload.userId; } else { payload.id = payload.partnerId; } res.locals.user = payload; next(); }); app.all('/auth/sso', (req, res, next) => { const token = req.query.Token?.toString(); const body = req.body; // TODO: add more handle res.setHeader('Set-Cookie', `Token=${token}; HttpOnly; Secure;`); next(); }); } //# sourceMappingURL=express_router.js.map