teko-oauth2
Version:
Teko Identity OAuth 2 Javascript Library for Web App Client
76 lines (67 loc) • 1.83 kB
TypeScript
declare module 'teko-oauth2' {
export interface InitOptions {
clientId: string
oauthDomain?: string
redirectUri?: string
postLogoutRedirectUri?: string
scopes?: string[]
monitorSession?: boolean
silent?: boolean
checkTokenRevoked?: boolean
bffDomain?: string
}
export interface IUser {
accessToken: string
expiresAt: number
expiresIn: number
idToken: string
profile: IUserInfo
scopes: string[]
sessionState: string
tokenType: string
}
export interface IUserInfo {
sub: string
name: string
picture: string
updated_at: string
email: string
phone_number: string
birthday: string
address: string
tenant_id: string
}
export interface CheckUserHasRolesAndPerms {
hasPermissions: boolean
hasRoles: boolean
}
export interface IUserDetailsInfo extends IUserInfo {
roles: string[]
permissions: string[]
meta_data: any
}
export interface IUserManager {
isLoggedIn: () => boolean
login: (redirectUri?: string, additionalParams?: any) => void
loginSilent: () => Promise<IUser>
renewTokenUsingRefreshToken: () => Promise<IUser>
logout: (redirectUri?: string, additionalParams?: any) => void
loadUser: () => IUser | undefined
unloadUser: () => void
events: any
getUserInfo: () => IUserInfo
getFullUserInfo: (adminDomain?: string) => Promise<IUserDetailsInfo>
getUserScopes: () => string[]
getAccessToken: () => string
getAccessTokenExpiredAt: () => number
hasRoles: () => CheckUserHasRolesAndPerms
hasRole:() => CheckUserHasRolesAndPerms
hasPermission:() => CheckUserHasRolesAndPerms
}
const TekoID: {
user: IUserManager
version: string
init: (options: InitOptions) => Promise<void>
}
export default TekoID
}