kaven-utils
Version:
Utils for Node.js.
58 lines (57 loc) • 1.83 kB
TypeScript
/********************************************************************
* @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);
}