@cloudbase/types
Version:
cloudbase javascript sdk types
94 lines (89 loc) • 2.53 kB
TypeScript
import { ICloudbaseConfig, KV, ICloudbase } from '.'
import { UserInfo } from '@cloudbase/oauth'
export type ICloudbaseAuthConfig = Pick<
ICloudbaseConfig,
| 'env'
| 'clientId'
| 'region'
| 'persistence'
| 'debug'
| '_fromApp'
| 'oauthInstance'
| 'wxCloud'
| 'i18n'
| 'accessKey'
| 'useWxCloud'
> &
ICloudbaseConfig['auth']
export interface IAccessTokenInfo {
accessToken: string
env: string
}
export interface ICredential {
// refreshToken: string;
accessToken?: string
accessTokenExpire?: string
}
export interface IAuthProvider {
signInWithRedirect: () => any
}
export interface IUserInfo {
uid?: string
loginType?: string
openid?: string
wxOpenId?: string
wxPublicId?: string
unionId?: string
qqMiniOpenId?: string
customUserId?: string
name?: string
gender?: string
email?: string
username?: string
hasPassword?: boolean
location?: {
country?: string
province?: string
city?: string
}
country?: string
province?: string
city?: string
}
export interface IUser extends IUserInfo {
checkLocalInfo: () => void
checkLocalInfoAsync: () => Promise<void>
linkWithTicket?: (ticket: string) => Promise<void>
linkWithRedirect?: (provider: IAuthProvider) => void
getLinkedUidList?: () => Promise<{ hasPrimaryUid: boolean; users: IUserInfo[] }>
setPrimaryUid?: (uid: string) => Promise<void>
unlink?: (loginType: 'CUSTOM' | 'WECHAT-OPEN' | 'WECHAT-PUBLIC' | 'WECHAT-UNION') => Promise<void>
update: (userinfo: IUserInfo) => Promise<void>
refresh: (params?: { version?: string }) => Promise<IUserInfo>
}
export interface ILoginState {
user: IUser
}
export interface ICloudbaseAuth {
config: ICloudbaseConfig
loginType: string
weixinAuthProvider: any
anonymousAuthProvider: any
customAuthProvider: any
getAccessToken: () => IAccessTokenInfo
getLoginState: () => Promise<ILoginState | null>
hasLoginState: () => Promise<ILoginState | null>
getUserInfo: () => Promise<UserInfo & IUser>
getAuthHeader: () => Promise<KV<string>>
onLoginStateChanged: (callback: Function) => void
onLoginStateExpired: (callback: Function) => void
onAccessTokenRefreshed: (callback: Function) => void
onAnonymousConverted: (callback: Function) => void
onLoginTypeChanged: (callback: Function) => void
shouldRefreshAccessToken: (hook: Function) => void
}
type IProvider = new (...args: any[]) => any
export interface ICloudbaseAuthModule {
registerAuth: (app: ICloudbase) => void
registerProvider: (name: string, provider: IProvider) => void
}