UNPKG

kaven-utils

Version:

Utils for Node.js.

58 lines (57 loc) 1.83 kB
/******************************************************************** * @author: Kaven * @email: kaven@wuwenkai.com * @website: http://blog.kaven.xyz * @file: [Kaven-Utils] /src/KavenSSO/KavenSSO.ts * @create: 2018-10-20 07:12:13.205 * @modify: 2020-06-24 08:56:05.766 * @version: 2.0.6 * @times: 70 * @lines: 114 * @copyright: Copyright © 2018-2020 Kaven. All Rights Reserved. * @description: [description] * @license: [license] ********************************************************************/ import { TStringObject, TStringOrUndefined } from "kaven-basic"; export interface ISSOParameterName { Action: string; AppID: string; UserID: string; ReturnTo: string; NotifyTo: string; SessionID: string; Token: string; Data: string; } export declare enum SSOAction { Login = "Login", Verify = "Verify", Logout = "Logout", NotifyLogout = "NotifyLogout" } export declare enum SSOVerifyError { TokenNotExist = "TokenNotExist", TokenInvalid = "TokenInvalid", TokenSignatureNotMatch = "TokenSignatureNotMatch", TokenClientIdNotMatch = "TokenClientIdNotMatch", JWTSecretNotExist = "JWTSecretNotExist", SSOTypeInvalid = "SSOTypeInvalid" } export declare const DefaultSSOParameterName: ISSOParameterName; export interface ISSOClient { token: string; sessionID?: string; userID?: string; } export interface ISSOVerifyResult { parameters: TStringObject<TStringOrUndefined>; action?: SSOAction; userID?: string; } export declare abstract class KavenSSO { readonly Secret: string; readonly ParameterName: ISSOParameterName; readonly TokenName: string; EnableLog: boolean; constructor(secret: string, parameterName?: ISSOParameterName, tokenName?: string); }