BaseLogin

BaseLogin

Constructor

new BaseLogin(configOptionsopt)

Source:

构造函数

Parameters:
Name Type Attributes Description
configOptions object <optional>

配置项,参见BaseLogin#config

Members

userInfo

Source:

获取用户信息

Methods

(protected) _appendConfig(key, value)

Source:

追加配置项
主要供子类调用,便于子类传递自定义配置项给自定义鉴权器/自定义钩子函数
建议子类将所有自定义配置项封装成一个对象,总共占用一个key,避免未来和父类新增配置项命名冲突

Parameters:
Name Type Description
key string

配置项名称

value object | *

配置项值

(async, protected) _handleAddOn() → {BaseLogin~LoginStepAddOnRes}

Source:

支持使用方配置自定义附加步骤,会在正常登录流程执行成功时调用,并根据其处理结果生成最终登录结果

Returns:
Type
BaseLogin~LoginStepAddOnRes

(async, protected) _handleUserAuth(options) → {BaseLogin~UserAuthRes}

Source:

授权交互处理

Parameters:
Name Type Description
options

登录选项,参见BaseLogin#login

Returns:
Type
BaseLogin~UserAuthRes

(protected) _init()

Source:

初始化

(protected) _mergeConfigOptions(globalConfig, pageConfig) → {object}

Source:

合并配置项

Parameters:
Name Type Description
globalConfig

全局配置,格式参见BaseLogin#config

pageConfig

页面级配置,格式同全局配置,但只接受以下字段:

字段 和全局配置的关系
onUserAuthFailed 并存
onUserAuthSucceeded 并存
onNewlyLogin 并存
onLoginFailed 并存
userAuthHandler 覆盖
Returns:

合并后的配置项,格式参见BaseLogin#config

Type
object

(protected) _saveAnonymousInfo(anonymousInfo)

Source:

保存/更新匿名信息

Parameters:
Name Type Description
anonymousInfo object

匿名信息

(protected) _saveInfo(loginInfo)

Source:

保存/更新登录信息

Parameters:
Name Type Description
loginInfo BaseLogin~LoginInfo

登录信息

checkLogin() → {boolean}

Source:

检查是否登录

Returns:

是否登录

Type
boolean

clearLogin(needClearAuth)

Source:

清除前端登录态

Parameters:
Name Type Description
needClearAuth boolean

是否需要清除鉴权信息:false-仅清除登录态,下次还可以静默登录 | true-同时清除鉴权信息,下次必须授权登录

config(configOptions)

Source:

模块配置

Parameters:
Name Type Description
configOptions Object
Properties
Name Type Attributes Description
loginInfoStorage String <optional>

登录相关信息存储到storage时使用的key

requester Requester

请求管理器

onUserAuthFailed function <optional>

钩子函数,获取用户授权信息失败时触发

onUserAuthSucceeded function <optional>

钩子函数,获取用户授权信息成功时触发

onNewlyLogin function <optional>

钩子函数,刚刚登录成功时触发(未登录=>已登录)

onLoginFailed BaseLogin~OnLoginFailed <optional>

钩子函数,登录失败时触发

authEngineMap Object.<string, BaseAuth>

鉴权器映射表
key为登录方式,value为对应的鉴权器
e.g. {
'wechat' : new WechatAuth(), //微信登录,WechatAuth应继承于BaseAuth
'phone' : new PhoneAuth(), //手机号登录,PhoneAuth应继承于BaseAuth
}

defaultAuthType String

默认登录方式

userAuthHandler BaseLogin~UserAuthHandler

授权交互处理函数,负责跟用户交互,收集鉴权所需信息

loginStepAddOn BaseLogin~LoginStepAddOn <optional>

登录流程自定义附加步骤,会在正常登录流程执行成功时调用,并根据其处理结果生成最终登录结果

pageConfigHandler function <optional>

页面配置处理函数,负责获取当前页面的页面级登录配置,默认实现:

  function pageConfigHandler(){ 
    //获取当前页面实例
    let curPages = getCurrentPages(); 
    let curPage = curPages[curPages.length-1] || {};
    //获取当前页面的页面级登录配置
    return curPage.$loginOpts;
  }

(async) login(optionsopt) → {BaseLogin~LoginRes}

Source:

登录

登录模式 common silent force forceSilent forceAuth
定位 要有登录态 有登录态最好,没有就算了 要有严格登录态(保证前后端登录态一致且均未过期) 有严格登录态最好,没有就算了 要展示登录界面
是否复用已有登录信息 × × ×
是否尝试静默登录 ×
是否尝试授权登录 × ×
适用场景 适合大部分页面场景,如收藏、留言等 适合悄悄个性化,如首页个性化定制,搜索页个性化推荐等 适合重要且不能失败重试的场景,如重要的微信数据解密 适合不能失败重试但可以不要的场景,如不重要的微信数据解密 适合与登录界面强耦合的场景,如开发登录弹窗、演示登录界面
Parameters:
Name Type Attributes Description
options Object <optional>

登录选项

Properties
Name Type Attributes Description
callback function <optional>

兼容起见支持回调,但更建议以Promise方式使用

mode string <optional>

登录模式,详见上文函数描述部分

userAuthHandler BaseLogin~UserAuthHandler <optional>

自定义用户授权交互

failAction String <optional>

失败处理方式:auto-自动处理 | none-调用方自行处理 | 其它-和onLoginFailed钩子函数约定的其它处理方式

thisIssuer Object <optional>

触发登录的组件的this对象,供钩子函数使用

Returns:

登录结果

Type
BaseLogin~LoginRes

logout(needClearAuth) → {Object}

Source:

退出登录

Parameters:
Name Type Description
needClearAuth boolean

是否需要清除鉴权信息:false-仅清除登录态,下次还可以静默登录 | true-同时清除鉴权信息,下次必须授权登录

Returns:

res 退出登录结果,格式形如:{code:0, errMsg:'ok'}

Type
Object

makeAssignableMethod(methodName) → {function}

Source:

将方法封装为通用函数,使之可以在任意this对象上执行

Parameters:
Name Type Description
methodName String

方法名

Returns:

封装后的函数

Type
function

(async) reLogin() → {BaseLogin~LoginRes}

Source:

重新登录

Returns:

登录结果

Type
BaseLogin~LoginRes

Type Definitions

LoginInfo

Source:
Properties:
Name Type Attributes Description
isLogin boolean

是否登录

userInfo object

用户信息

expireTime number

过期时间,绝对毫秒数,-1表示长期有效

authType string

使用的验证方式

anonymousInfo object <optional>

匿名信息(登录成功前使用的临时标识,成功后继续关联)

登录信息

Type:
  • object

LoginRes

Source:
Properties:
Name Type Attributes Description
code number

状态码

code 语义
0 成功
-100 用户交互失败 e.g.用户拒绝授权等
-200 静默失败,静默登录失败且调用方要求不要尝试授权登录
-300 授权登录失败
-400 附加步骤返回失败结果
-500 模块内部异常
errMsg string

详细错误日志,debug用

toastMsg string <optional>

(若有)用户话术,提示失败原因

登录结果

Type:
  • object
Example
{
     code: -300, //状态码,0为成功
     errMsg:'login api failed...', //详细错误日志,debug用
     toastMsg: '您的账号存在安全风险,请联系客服进行处理' //(若有)用户话术,提示失败原因
   }

(async) LoginStepAddOn() → {BaseLogin~LoginStepAddOnRes}

Source:

登录流程自定义附加步骤

Returns:
Type
BaseLogin~LoginStepAddOnRes

LoginStepAddOnRes

Source:
Properties:
Name Type Attributes Description
succeeded boolean

是否成功

errMsg string <optional>

详细失败原因,debug用

toastMsg string <optional>

(若有)用户话术,提示失败原因

登录流程自定义附加步骤处理结果

Type:
  • object

OnLoginFailed(loginRes, options)

Source:

登录失败钩子函数

Example
onLoginFailed(res, {failAction}){
      switch (failAction) { //调用方希望的失败处理方式
        case 'auto': //自动处理
          wx.showToast({
            title: res.toastMsg || '登录失败',
            image: '/images/tipfail.png',
            duration: 3000
          });
          break;
        case 'none': //调用方自行处理
          break;
        default:
          console.error('[onLoginFailed] unknown failAction:', failAction);
      }
    }
Parameters:
Name Type Description
loginRes BaseLogin~LoginRes

登录结果

options object

选项

Properties
Name Type Description
failAction string

调用方希望的失败处理方式:auto-自动处理 | none-调用方自行处理 | 其它约定值

(async) UserAuthHandler() → {BaseLogin~UserAuthRes}

Source:

授权交互处理函数,负责跟用户交互,收集鉴权所需信息

Returns:

交互结果

Type
BaseLogin~UserAuthRes

UserAuthRes

Source:
Properties:
Name Type Description
succeeded boolean

是否成功

errMsg string

错误信息,调试用

authType string

用户选择的登录方式

authData object

交互数据,格式由该登录方式对应的鉴权器指定

userAuthHandler交互结果

Type:
  • object