UNPKG

@htilssu/wowo

Version:

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

43 lines 1.88 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SSO = exports.baseUrl = void 0; const jwt_1 = require("./jwt"); exports.baseUrl = "https://sso.htilssu.id.vn"; class SSO { baseUrl = exports.baseUrl; serviceId; constructor(serviceId) { this.serviceId = serviceId; } /** * Xác thực token trả về từ SSO server, và trả về payload chứa thông tin của người dùng nếu token hợp lệ, * nếu token không hợp lệ giá trị trả về sẽ là `null` * @param token token cần xác thực * @returns null nếu token không hợp lệ hoặc payload của token */ async verify(token) { try { return await (0, jwt_1.verify)(token); } catch (e) { return null; } } /** * Chuyển hướng tới trang đăng nhập của server SSO với url trả về sau khi đăng nhập * khi server đăng nhập xong sẽ chuyển hướng tới url trả về và kèm theo Token của người dùng từ searchParams * @example * ```js * redirectToLoginPage("http://localhost:3000") * ``` * Sau khi xác thực xong người dùng sẽ được chuyển hướng tới `returnUrl` * `http://localhost:3000?Token=... các dịch vụ liên kết sẽ lấy token từ query params và lưu vào cookie của app` * @param returnUrl sau khi đăng nhập xong server sso sẽ chuyển hướng tới * @param callbackUrl callback sau khi đăng nhập xong sso sẽ gọi tới bằng `POST` method */ redirectToLogin(returnUrl, callbackUrl) { location.href = `${this.baseUrl}/sign-in?returnUrl=${returnUrl ? returnUrl : location}&serviceId=${this.serviceId}&callbackUrl=${callbackUrl}`; } } exports.SSO = SSO; //# sourceMappingURL=SSO.js.map