¶ 常用 TS 类型定义及相关数据结构
¶ IGuardMode
Guard 展示形态:普通形态 / 模态框形态
export type IGuardMode = 'normal' | 'modal'
复制成功
¶ IGuardModuleType
Guard 所有 module,可结合 changeView 自由切换 Guard 界面。
// ************************************** // 枚举转字符串字面量,以兼容所有构建工具及编译场景,相当于: // export type IGuardModuleType = 'error' | 'login' | 'register' | 'mfa' | ...... // 下同 // ************************************** export type IGuardModuleType = `${GuardModuleType}` export enum GuardModuleType { ERROR = 'error', //错误页 LOGIN = 'login', //登录页 REGISTER = 'register', //注册页 MFA = 'mfa', // 二次 mfa 认证页 FORGET_PWD = 'forgetPassword', // 忘记密码页 FORCED_PASSWORD_RESET = 'forcedPasswordReset', // 登陆安全策略 密码轮换页 NOTICE_PASSWORD_RESET = 'noticePasswordReset', //提示修改密码页 FIRST_LOGIN_PASSWORD = 'firstLoginPassword', //首次登录修改密码页 UNSAFE_PASSWORD_RESET = 'unsafePasswordReset', // 密码强度不符合要求修改密码页 DOWNLOAD_AT = 'downloadAT', //下载 Authenticator 页 BIND_TOTP = 'bindTotp', // 绑定 TOTP页 ANY_QUESTIONS = 'anyQuestions', // 问题反馈页 LOGIN_COMPLETE_INFO = 'loginCompleteInfo', // 登录信息补全 REGISTER_PASSWORD = 'registerPassword', // 验证码注册拉起密码补全页 REGISTER_COMPLETE_INFO = 'registerCompleteInfo', //注册信息补全页 RECOVERY_CODE = 'recoveryCode', // MFA 恢复码展示页 SUBMIT_SUCCESS = 'submitSuccess', // 提交成功展示页 IDENTITY_BINDING_ASK = 'identityBindingAsk', // 身份源绑定 问询页 IDENTITY_BINDING = 'identityBinding', // 身份源绑定页 IDENTITY_BINDING_NO_ASK = 'identityBindingNoAsk', // 身份源绑定页不问询 SELF_UNLOCK = 'selfUnlock', // 自助解锁页 FLOW_SELECT_ACCOUNT = 'flowSelectAccount', // 选择登录账号 /** 多租户门户选择页 */ TENANT_PORTAL = 'tenant-portal', New_SUBMIT_SUCCESS = 'newSubmitSuccess', // 提交成功展示页 RESET_ACCOUNT_NAME = 'resetAccountName' // 重置账号 }
复制成功
¶ IGuardTabType
Guard 所有 tab,可结合 changeView 自由切换 Guard 界面。通常只有登录和注册界面下才有 tab。
export type IGuardTabType = | 'phone-code' | 'phone-password' | 'password' | 'email-password' | 'username-password' | 'authing-otp-push' | 'ad' | 'ldap' | 'app-qrcode'
复制成功
¶ Lang
export type Lang = 'zh-CN' | 'en-US' | 'zh-TW' | 'ja-JP'
复制成功
¶ IGuardConfig
export interface IGuardConfig { // 自定义 Guard 标题 title?: string, // 自定义 Guard 展示 LOGO logo?: string // mode = 'modal' 时,是否可关闭模态框 clickCloseable?: boolean // 多语言范围 langRange: Lang[] // 社会化身份源 socialConnectionList?: ISocialConnectionProvider[] // 默认登录方式 loginMethod?: ILoginMethod // 所有可用的登录方式 loginMethodList: ILoginMethod[] // 默认注册方式 registerMethod?: IRegisterMethod // 所有可用注册方式 registerMethodList?: IRegisterMethod[] // 自定义 CSS 样式,如果指定了,会在 DOM 的 head 中插入一个 <style type="text/css"></style> 节点。如 body {background:#6699 contentCSS?: string }
复制成功
¶ ISocialConnectionProvider
社会化身份源
export type ISocialConnectionProvider = `${SocialConnectionProvider}` export enum SocialConnectionProvider { ALIPAY = 'alipay', GOOGLE = 'google', WECHATPC = 'wechat:pc', WECHATMP = 'wechat:webpage-authorization', WECHAT_MINIPROGRAM = 'wechat:miniprogram:default', WECHAT_MINIPROGRAM_QRCODE = 'wechat:miniprogram:qrconnect', WECHAT_MINIPROGRAM_APPLAUNCH = 'wechat:miniprogram:app-launch', WECHATMOBILE = 'wechat:mobile', GITHUB = 'github', QQ = 'qq', WECHATWORK_ADDRESS_BOOK = 'wechatwork:addressbook', WECHATWORK_CORP_QRCONNECT = 'wechatwork:corp:qrconnect', WECHATWORK_SERVICEPROVIDER_QRCONNECT = 'wechatwork:service-provider:qrconnect', DINGTALK = 'dingtalk', WEIBO = 'weibo', APPLE = 'apple', APPLE_WEB = 'apple:web', LARK_PUBLIC = 'lark-public', LARK_INTERNAL = 'lark-internal', BAIDU = 'baidu', LINKEDIN = 'linkedin', SLACK = 'slack', YIDUN = 'yidun', QINGCLOUD = 'qingcloud', FACEBOOK = 'facebook' }
复制成功
¶ ILoginMethod
Guard 提供的可用的登录方式
export type ILoginMethod = `${LoginMethods}` export enum LoginMethods { LDAP = 'ldap', AppQr = 'app-qrcode', Password = 'password', PhoneCode = 'phone-code', WxMinQr = 'wechat-miniprogram-qrcode', // 对应社会化登录的 wechat:miniprogram:qrconnect(小程序扫码登录) AD = 'ad', // 对应企业身份源的 Windows AD 登录 WechatMpQrcode = 'wechatmp-qrcode', // 微信扫码关注登录 AuthingOtpPush = 'authing-otp-push' // App 扫码登录 }
复制成功
¶ IRegisterMethod
Guard 提供的可用的注册方式
export type IRegisterMethod = `${RegisterMethods}` export enum RegisterMethods { Email = 'email', Phone = 'phone', EmailCode = 'emailCode' }
复制成功
¶ NomalLoginParams
interface NomalLoginParams { type: "ldap" /**LDAP 登录 */ | "ad" /**AD 登录 */ | "password"/**密码登录,如手机号 + 密码,邮箱 + 密码 */; data: { identity: string; // 账号 password: string; // 密码 captchaCode?: string; // 图形验证码 }; }
复制成功
¶ VerifyCodeLoginParams
interface VerifyCodeLoginParams { type: "email-code" /**邮箱验证码登录 */ | "phone-code" /**手机验证码登录 */; data: { identity: string; // 账号 code: string; // 验证码 phoneCountryCode?: string; // 开启国际化短信后携带的区号信息 }; }
复制成功
¶ ScanLoginParams
interface ScanLoginParams { type: "app-qrcode" /**APP 扫码登录登录 */ | "wechat-miniprogram-qrcode" /**微信小程序扫码登录 */ | "wechatmp-qrcode" /**微信公众号扫码登录登录 */; data: User; // 用户信息 }
复制成功
¶ RegisterParams
interface RegisterParams { type: "phone" /**手机验证码注册 */ | "email" /**邮箱密码注册 */ | "emailCode" /**邮箱验证码注册 */; data: { identity: string; // 账号 password?: string; // 密码 code?: string; // 验证码 }; }
复制成功
¶ User
详情请见:用户字段释义 (opens new window)。
¶ OnAfterChangeModuleOptions
interface OnAfterChangeModuleOptions { currentView: string currentModule: IGuardModuleType currentTab?: IGuardTabType data?: any }
复制成功
¶ ILoginError
interface ILoginError { code: number data: any message: string }
复制成功
¶ IEmailScene
Guard 内部邮箱验证码发送的场景值,根据场景值发送控制台配置完成的邮件模版
export type IEmailScene = `${EmailScene}` export enum EmailScene { // 通知模版 // - 欢迎邮件 WELCOME WELCOME_EMAIL = 'WELCOME_EMAIL', // - 首次创建用户通知 FIRST_LOGIN_VERIFY FIRST_CREATED_USER = 'FIRST_CREATED_USER', // 注册/登录验证码模板 VERIFY_CODE // - 注册验证码 REGISTER_VERIFY_CODE = 'REGISTER_VERIFY_CODE', // - 登录验证码 LOGIN_VERIFY_CODE = 'LOGIN_VERIFY_CODE', // - MFA 验证 MFA_VERIFY_CODE = 'MFA_VERIFY_CODE', // - 信息补全验证码 INFORMATION_COMPLETION_VERIFY_CODE = 'INFORMATION_COMPLETION_VERIFY_CODE', // 验证模版 VERIFY_EMAIL // - 首次邮箱登录验证 FIRST_EMAIL_LOGIN_VERIFY = 'FIRST_EMAIL_LOGIN_VERIFY', // - 在控制台发起验证 CONSOLE_CONDUCTED_VERIFY = 'CONSOLE_CONDUCTED_VERIFY', // 重置密码模版 RESET_PASSWORD // - 重置密码验证码 RESET_PASSWORD_VERIFY_CODE = 'RESET_PASSWORD_VERIFY_CODE', // 邮箱绑定模版 CHANGE_EMAIL // - 邮箱绑定验证码 EMAIL_BIND_VERIFY_CODE = 'EMAIL_BIND_VERIFY_CODE', // - 邮箱解绑验证码 EMAIL_UNBIND_VERIFY_CODE = 'EMAIL_UNBIND_VERIFY_CODE', // 自助解锁验证码 SELF_UNLOCKING_VERIFY_CODE = 'SELF_UNLOCKING_VERIFY_CODE' }
复制成功
¶ ISceneType
Guard 内部短信验证码发送的场景值
export type ISceneType = `${SceneType}` export declare enum SceneType { SCENE_TYPE_LOGIN = "login", SCENE_TYPE_REGISTER = "register", SCENE_TYPE_RESET = "reset", SCENE_TYPE_BIND = "bind", SCENE_TYPE_UNBIND = "unbind", SCENE_TYPE_MFA_BIND = "mfa-bind", SCENE_TYPE_MFA_VERIFY = "mfa-verify", SCENE_TYPE_MFA_UNBIND = "mfa-unbind", SCENE_TYPE_COMPLETE_PHONE = "complete-phone" }
复制成功
¶ NomalLoginParams
interface NomalLoginParams { type: "ldap" /**LDAP 登录 */ | "ad" /**AD 登录 */ | "password"/**密码登录,如手机号 + 密码,邮箱 + 密码 */; data: { identity: string; // 账号 password: string; // 密码 captchaCode?: string; // 图形验证码 }; }
复制成功
¶ VerifyCodeLoginParams
interface VerifyCodeLoginParams { type: "email-code" /**邮箱验证码登录 */ | "phone-code" /**手机验证码登录 */; data: { identity: string; // 账号 code: string; // 验证码 phoneCountryCode?: string; // 开启国际化短信后携带的区号信息 }; }
复制成功
¶ IChangeViewOptions
export interface IChangeViewOptions { module: IGuardModuleType tab?: IGuardTabType }
复制成功
¶ LogoutParams
export interface LogoutParams { // 退出后的重定向地址,默认使用控制台 -> 应用 -> 自建应用 -> 应用配置 -> 认证配置 -> 登出回调 URL 中的第一个 redirectUri?: string // 只退出当前设备,不影响其他设备登录状态 quitCurrentDevice?: boolean }
复制成功
¶ Guard
class Guard { async getAuthClient(): Promise<AuthenticationClient> /** * 启动嵌入模式 * @param el String * @returns Promise */ async start(el?: string): Promise<User> changeLang(lang: Lang): void changeContentCSS(contentCSS: string): void /** * 启动跳转模式 */ async startWithRedirect(options: StartWithRedirectOptions = {}): void async handleRedirectCallback(): void /** * 获取当前用户信息 */ async trackSession(): Promise<User | null> async logout(params: LogoutParams = {}): void show(): void hide(): void unmount(): void async changeView(currentView: string | IChangeViewOptions): void checkAllAgreements(): void unCheckAllAgreements(): void }
复制成功
评价此篇文档
有帮助
无帮助