import { RxAVObject, RxAVRole, RxAVInstallation } from '../RxLeanCloud'; import { IObjectState } from '../internal/object/state/IObjectState'; import { IUserController } from '../internal/user/controller/IUserController'; import { Observable } from 'rxjs'; /** * 用户 * * @export * @class RxAVUser 一个用户对应的是 _User 的一个对象,它的查询权限是关闭的,默认是不可以通过 RxAVQuery 查询用户的 * @extends {RxAVObject} */ export declare class RxAVUser extends RxAVObject { constructor(); static readonly installationKey: string; static readonly currenUserCacheKey: string; private _username; private _primaryRole; email: string; private _mobilephone; roles: Array; private static _currentUser; private static _currentUsers; protected static saveCurrentUser(user: RxAVUser): Observable; /** * 获取本地缓存文件里面是否存在已经登录过的用户 * * @readonly * @static * @type {Observable} * @memberOf RxAVUser */ static current(options?: any): Observable; static currentSessionToken(): Observable; protected static readonly UserController: IUserController; /** * 获取用户名 * * * @memberOf RxAVUser */ /** * 新用户设置用户名,已注册用户调用这个接口会抛出异常 * * * @memberOf RxAVUser */ username: string; /** * 手机号 * * @readonly * * @memberOf RxAVUser */ /** * 设置手机号 * * * @memberOf RxAVUser */ mobilephone: string; /** * 只有新用户可以设置密码,已注册用户调用这个接口会抛出异常 * * * @memberOf RxAVUser */ password: string; /** * 用户的鉴权信息 * * @readonly * * @memberOf RxAVUser */ readonly sesstionToken: any; /** * 判断当前用户的鉴权信息是否有效 * * @returns {Observable} * * @memberOf RxAVUser */ isAuthenticated(): Observable; /** * 将一个 RxAVInstallation 对象绑定到 RxAVUser * * @param {RxAVInstallation} installation * @param {boolean} unique * @returns {Observable} 是否成功地绑定了当前设备和 User 的关系 * * @memberOf RxAVUser */ activate(installation: RxAVInstallation, unique: boolean): Observable; /** * 取消对当前设备的绑定 * * @param {RxAVInstallation} installation * @returns {Observable} 是否成功的解绑 * * @memberOf RxAVUser */ inactive(installation: RxAVInstallation): Observable; /** * 从服务端获取当前用户所拥有的角色 * * @returns {Observable>} * * @memberOf RxAVUser */ fetchRoles(): Observable>; /** * 使用当前用户的信息注册到 LeanCloud _User 表中 * * @returns {Observable} * 返回一个可订阅的对象,尽管是 void,但是当前 AVUser 实例对象里面的 sessionToken,objectId 都已更新 * @memberOf RxAVUser */ signUp(): Observable; /** * 发送注册用户时需要的验证码 * * @static * @param {string} mobilephone 手机号 * @returns {Observable} * * @memberOf RxAVUser */ static sendSignUpShortcode(mobilephone: string): Observable; /** * 发送登录时需要的验证码 * * @static * @param {string} mobilephone 手机号 * @returns {Observable} * * @memberOf RxAVUser */ static sendLogInShortcode(mobilephone: string): Observable; /** * 使用手机号以及验证码创建新用户 * @static * @param {string} mobilephone 手机号,目前支持几乎所有主流国家 * @param {string} shortCode 6位数的数字组成的字符串 * @returns {Observable} * * @memberOf RxAVUser */ static signUpByMobilephone(mobilephone: string, shortCode: string, newUser: RxAVUser): Observable; /** * 使用手机号以及验证码登录 * * @static * @param {string} mobilephone * @param {string} shortCode * @returns {Observable} * * @memberOf RxAVUser */ static logInByMobilephone(mobilephone: string, shortCode: string): Observable; /** * 使用用户名和密码登录 * * @static * @param {string} username 用户名 * @param {string} password 密码 * @returns {Observable} * * @memberOf RxAVUser */ static logIn(username: string, password: string): Observable; /** * 登出系统,删除本地缓存 * * @returns {Observable} * * @memberOf RxAVUser */ logOut(): Observable; /** * 使用手机号+密码登录 * * @static * @param {string} mobilephone 手机号 * @param {string} password 密码 * @returns {Observable} * * @memberOf RxAVUser */ static logInWithMobilephone(mobilephone: string, password: string): Observable; /** * 创建一个用户,区别于 signUp,调用 create 方法并不会覆盖本地的 currentUser. * * @param {RxAVUser} user * @returns {Observable} * * @memberOf RxAVUser */ create(): Observable; static createWithoutData(objectId?: string): RxAVUser; protected static processLogIn(userState: IObjectState): Observable; protected handlerLogIn(userState: IObjectState): Observable; protected handlerSignUp(userState: IObjectState): Observable; }