Constructor
new LoginPlugin(pluginNameopt, loginCenter, apiAuthFailChecker)
- Source:
构造函数
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
pluginName |
string |
<optional> |
'LoginPlugin'
|
插件名称 |
loginCenter |
BaseLogin | 登录中心 |
||
apiAuthFailChecker |
LoginPlugin~ApiAuthFailChecker | 登录态失效校验函数 |
Extends
Members
pluginName :string
- Source:
- Overrides:
插件名称,主要用于打印日志和调试,便于追溯操作源
Type:
- string
requester :Requester
- Source:
- Overrides:
请求管理器
Type:
Methods
afterRequest(reqOptions, thisIssuer, reqRes) → {undefined|Requester~AfterRequestRes}
- Source:
- Overrides:
钩子函数,请求返回之后调用,同步
不会等待异步操作返回,如需等待异步逻辑,请改用BasePlugin#afterRequestAsync
Parameters:
Name | Type | Description |
---|---|---|
reqOptions |
Requester~ReqOptions | 请求参数 |
thisIssuer |
object | 发起接口请求的this对象 |
reqRes |
Requester~ReqRes | 请求结果 |
Returns:
期望的后续处理,undefined表示继续执行默认流程
- Type
- undefined | Requester~AfterRequestRes
(async) afterRequestAsync(reqOptions, thisIssuer, reqRes) → {undefined|Requester~AfterRequestRes}
- Source:
- Overrides:
钩子函数,请求返回之后调用,异步
会等待async函数resolve,若无异步逻辑,建议使用BasePlugin#afterRequest
Parameters:
Name | Type | Description |
---|---|---|
reqOptions |
Requester~ReqOptions | 请求参数 |
thisIssuer |
object | 发起接口请求的this对象 |
reqRes |
Requester~ReqRes | 请求结果 |
Returns:
期望的后续处理,undefined表示继续执行默认流程
- Type
- undefined | Requester~AfterRequestRes
beforeRequest(reqOptions, thisIssuer) → {undefined|Requester~BeforeRequestRes}
- Source:
- Overrides:
钩子函数,发请求之前调用,同步
不会等待异步操作返回,如需等待异步逻辑,请改用BasePlugin#beforeRequestAsync
Parameters:
Name | Type | Description |
---|---|---|
reqOptions |
Requester~ReqOptions | 请求参数 |
thisIssuer |
object | 发起接口请求的this对象 |
Returns:
期望的后续处理,undefined表示继续执行默认流程
- Type
- undefined | Requester~BeforeRequestRes
(async) beforeRequestAsync(reqOptions, thisIssuer) → {undefined|Requester~BeforeRequestRes}
- Source:
- Overrides:
钩子函数,发请求之前调用,异步
会等待async函数resolve,若无异步逻辑,建议使用BasePlugin#beforeRequest
Parameters:
Name | Type | Description |
---|---|---|
reqOptions |
Requester~ReqOptions | 请求参数 |
thisIssuer |
object | 发起接口请求的this对象 |
Returns:
期望的后续处理,undefined表示继续执行默认流程
- Type
- undefined | Requester~BeforeRequestRes
mount(requester)
- Source:
- Overrides:
钩子函数,插件被挂载到requester对象上时触发
Parameters:
Name | Type | Description |
---|---|---|
requester |
Requester | 被挂载到的requester对象 |
(async) requestWithLogin(reqOptions, manageOptionsopt) → {*|Requester~ReqRes}
- Source:
需要登录态的http请求,会在请求前后自动加入登录态相关逻辑:
- 请求发出前,若未登录,则先触发登录,然后再发送接口请求
- 请求返回后,若判断后端登录态已失效,则自动重新登录重新发送接口请求,并以重新请求的结果作为本次调用结果返回
本函数会注册到requester对象上,可以直接通过requester.requestWithLogin()调用
Example
let fetchData = requester.requestWithLogin({
url: '', //正常设置url、data、method等各种请求选项
loginOpts: { //额外定义一个保留字段loginOpts,用于指定登录参数
mode: 'silent'
}
});
Parameters:
Name | Type | Attributes | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
reqOptions |
Requester~ReqOptions | 请求参数 Properties
|
|||||||||
manageOptions |
Requester~ManageOptions |
<optional> |
管理参数 |
Returns:
请求结果,格式同Requester#request
- Type
- * | Requester~ReqRes
Type Definitions
ApiAuthFailChecker(resData, reqOptions) → {boolean}
- Source:
登录态失效校验函数,根据接口返回内容判断后端登录态是否失效
Example
function apiAuthFailChecker(resData, reqOptions){
return (
resData.respMsg.includes('请登录') || //后端登录态失效通用判断条件
(reqOptions.url.includes('/bizA/') && resData.respCode===-1) || //业务线A后端接口登录态失效
(reqOptions.url.includes('/bizB/') && resData.respCode===-2) //业务线B后端接口登录态失效
);
}
Parameters:
Name | Type | Description |
---|---|---|
resData |
* | 后端接口返回内容 |
reqOptions |
Requester~ReqOptions | 请求参数 |
Returns:
后端登录态是否失效
- Type
- boolean