微信小程序自動登錄邏輯分析與實現昌执,頁面黑白名單管理(上)
小程序沒有頁面黑白名單驗證,進入頁面需要登錄的诈泼,就加loginCheck懂拾,點擊頁面某個方法判斷未登錄狀態(tài)跳轉登錄的,調goLogin
// filter.js
const ajax = require('./ajax.js');
const app = getApp();
function loginCheck(pageObj) {
return new Promise(function (resolve, reject) {
// 檢查usertoken有沒有過期
let usertoken = wx.getStorageSync('usertoken');
ajax.dotnetRequest({
url: '/api/system/usertoken/檢查/' + usertoken,
success: function (res) {
if (res.statusCode === 200 && res.data.code === 0) {
if (res.data.data) {
// 沒有過期铐达,正常執(zhí)行
resolve(true);
} else {
// 過期岖赋,保存當前頁,跳轉登錄授權頁
resolve(false);
goLogin();
}
}
}
});
})
}
function goLogin(){
// 過期瓮孙,保存當前頁唐断,跳轉登錄授權頁
wx.showToast({
title: '用戶未登錄',
duration: 2000,
icon: 'none'
})
let currentInstance = ajax.getCurrentPageUrlWithArgs();
wx.setStorage({
key: 'loginBeforeRoute',
data: ajax.getCurrentPageUrlWithArgs(),
success: function () {
wx.redirectTo({
url: '/pages/home/login/index/index'
})
}
})
}
module.exports = {
loginCheck: loginCheck,
goLogin: goLogin
}
1:loginCheck -- 檢查頁面是否登陸选脊,用法示例:
如果onShow無后續(xù)操作,也可直接:
:2:goLogin -- 頁面未檢查登錄狀態(tài)脸甘,但點擊接口恳啥,返回-2時,用法示例: