@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
JavaScript
;
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