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:
(async, protected) _handleUserAuth(options) → {BaseLogin~UserAuthRes}
- Source:
授权交互处理
Parameters:
Name | Type | Description |
---|---|---|
options |
登录选项,参见BaseLogin#login |
Returns:
(protected) _init()
- Source:
初始化
(protected) _mergeConfigOptions(globalConfig, pageConfig) → {object}
- Source:
合并配置项
Parameters:
Name | Type | Description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
globalConfig |
全局配置,格式参见BaseLogin#config |
|||||||||||||
pageConfig |
页面级配置,格式同全局配置,但只接受以下字段:
|
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
|
(async) login(optionsopt) → {BaseLogin~LoginRes}
- Source:
登录
登录模式 | common | silent | force | forceSilent | forceAuth |
---|---|---|---|---|---|
定位 | 要有登录态 | 有登录态最好,没有就算了 | 要有严格登录态(保证前后端登录态一致且均未过期) | 有严格登录态最好,没有就算了 | 要展示登录界面 |
是否复用已有登录信息 | √ | √ | × | × | × |
是否尝试静默登录 | √ | √ | √ | √ | × |
是否尝试授权登录 | √ | × | √ | × | √ |
适用场景 | 适合大部分页面场景,如收藏、留言等 | 适合悄悄个性化,如首页个性化定制,搜索页个性化推荐等 | 适合重要且不能失败重试的场景,如重要的微信数据解密 | 适合不能失败重试但可以不要的场景,如不重要的微信数据解密 | 适合与登录界面强耦合的场景,如开发登录弹窗、演示登录界面 |
Parameters:
Name | Type | Attributes | Description | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
<optional> |
登录选项 Properties
|
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 | 状态码
|
|||||||||||||||
errMsg |
string | 详细错误日志,debug用 |
|||||||||||||||
toastMsg |
string |
<optional> |
(若有)用户话术,提示失败原因 |
登录结果
Type:
- object
Example
{
code: -300, //状态码,0为成功
errMsg:'login api failed...', //详细错误日志,debug用
toastMsg: '您的账号存在安全风险,请联系客服进行处理' //(若有)用户话术,提示失败原因
}
(async) LoginStepAddOn() → {BaseLogin~LoginStepAddOnRes}
- Source:
登录流程自定义附加步骤
Returns:
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
|
(async) UserAuthHandler() → {BaseLogin~UserAuthRes}
- Source:
授权交互处理函数,负责跟用户交互,收集鉴权所需信息
Returns:
交互结果
UserAuthRes
- Source:
Properties:
Name | Type | Description |
---|---|---|
succeeded |
boolean | 是否成功 |
errMsg |
string | 错误信息,调试用 |
authType |
string | 用户选择的登录方式 |
authData |
object | 交互数据,格式由该登录方式对应的鉴权器指定 |
userAuthHandler交互结果
Type:
- object