fix: checkSession返回失败后没有自动重新登录
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<p align="center"><img src="./image/logo.png" alt="weRequest" height="160"/></p>
|
||||
<h2 align="center">v1.2.2</h2>
|
||||
<h2 align="center">v1.2.3</h2>
|
||||
<p align="center"><b>解决繁琐的小程序会话管理,一款自带登录态管理的网络请求组件。</b></p>
|
||||
|
||||
|
||||
|
||||
2
build/module/sessionManager.d.ts
vendored
2
build/module/sessionManager.d.ts
vendored
@@ -1,7 +1,9 @@
|
||||
declare function setSession(session: string): void;
|
||||
declare function delSession(): void;
|
||||
declare function main(): Promise<{}>;
|
||||
declare const _default: {
|
||||
main: typeof main;
|
||||
setSession: typeof setSession;
|
||||
delSession: typeof delSession;
|
||||
};
|
||||
export default _default;
|
||||
|
||||
File diff suppressed because one or more lines are too long
4
build/weRequest.min.js
vendored
4
build/weRequest.min.js
vendored
File diff suppressed because one or more lines are too long
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "we-request",
|
||||
"version": "1.2.2",
|
||||
"version": "1.2.3",
|
||||
"description": "本工具通过拓展小程序的wx.request,让开发者通过简单的配置,实现自动管理登录态等功能",
|
||||
"keywords": [
|
||||
"登录态",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import status from '../store/status'
|
||||
import sessionManager from '../module/sessionManager'
|
||||
|
||||
export default (session: string) => {
|
||||
status.session = session;
|
||||
sessionManager.setSession(session);
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ let checkSessionPromise: any = null;
|
||||
|
||||
function checkSession() {
|
||||
if (!checkSessionPromise) {
|
||||
checkSessionPromise = new Promise((resolve) => {
|
||||
checkSessionPromise = new Promise((resolve, reject) => {
|
||||
console.log("wx.checkSession()");
|
||||
const start = new Date().getTime();
|
||||
wx.checkSession({
|
||||
@@ -20,7 +20,11 @@ function checkSession() {
|
||||
fail() {
|
||||
// 登录态过期
|
||||
delSession();
|
||||
return doLogin().then(() => {
|
||||
return resolve();
|
||||
}, (res: any)=>{
|
||||
return reject(res);
|
||||
});
|
||||
},
|
||||
complete() {
|
||||
const end = new Date().getTime();
|
||||
@@ -49,6 +53,8 @@ function isSessionExpireOrEmpty() {
|
||||
function checkLogin() {
|
||||
return new Promise((resolve, reject) => {
|
||||
if (isSessionExpireOrEmpty()) {
|
||||
// 没有登陆态,不需要再checkSession
|
||||
config.doNotCheckSession = true;
|
||||
return doLogin().then(() => {
|
||||
return resolve();
|
||||
}, (res: any)=>{
|
||||
@@ -106,6 +112,24 @@ function login() {
|
||||
})
|
||||
}
|
||||
|
||||
function setSession(session: string) {
|
||||
status.session = session;
|
||||
// 换回来的session,不需要再checkSession
|
||||
config.doNotCheckSession = true;
|
||||
// 如果有设置本地session过期时间
|
||||
if (config.sessionExpireTime && config.sessionExpireKey) {
|
||||
status.sessionExpire = new Date().getTime() + config.sessionExpireTime;
|
||||
wx.setStorage({
|
||||
key: config.sessionExpireKey,
|
||||
data: String(status.sessionExpire)
|
||||
})
|
||||
}
|
||||
wx.setStorage({
|
||||
key: config.sessionName as string,
|
||||
data: status.session
|
||||
});
|
||||
}
|
||||
|
||||
function code2Session(code: string) {
|
||||
let data: any;
|
||||
// codeToSession.data支持函数
|
||||
@@ -173,9 +197,15 @@ function code2Session(code: string) {
|
||||
function delSession() {
|
||||
status.session = '';
|
||||
wx.removeStorage({
|
||||
key: config.sessionName
|
||||
key: config.sessionName as string
|
||||
});
|
||||
if (config.sessionExpireTime && config.sessionExpireKey) {
|
||||
status.sessionExpire = Infinity;
|
||||
wx.removeStorage({
|
||||
key: config.sessionExpireKey
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
function main() {
|
||||
return new Promise((resolve, reject) => {
|
||||
@@ -186,11 +216,15 @@ function main() {
|
||||
return reject({title, content});
|
||||
}).then(() => {
|
||||
return resolve();
|
||||
}, ({title, content})=> {
|
||||
errorHandler.doError(title, content);
|
||||
return reject({title, content});
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
export default {
|
||||
main,
|
||||
setSession,
|
||||
delSession
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user