微信小程序自動登錄邏輯分析與實(shí)現(xiàn),頁面黑白名單管理(下)

微信小程序自動登錄邏輯分析與實(shí)現(xiàn),頁面黑白名單管理(上)
小程序沒有頁面黑白名單驗(yàn)證,進(jìn)入頁面需要登錄的,就加loginCheck,點(diǎn)擊頁面某個(gè)方法判斷未登錄狀態(tài)跳轉(zhuǎn)登錄的,調(diào)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 {
            // 過期,保存當(dāng)前頁,跳轉(zhuǎn)登錄授權(quán)頁  
            resolve(false);
            goLogin();
          }
        }
      }
    });
  })
 
}

function goLogin(){
  // 過期,保存當(dāng)前頁,跳轉(zhuǎn)登錄授權(quán)頁  
  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 -- 檢查頁面是否登陸,用法示例:


loginCheck

如果onShow無后續(xù)操作,也可直接:

loginCheck

:2:goLogin -- 頁面未檢查登錄狀態(tài),但點(diǎn)擊接口,返回-2時(shí),用法示例:


goLogin
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容