微信小程序自动登录逻辑分析与实现,页面黑白名单管理(下)

微信小程序自动登录逻辑分析与实现,页面黑白名单管理(上)
小程序没有页面黑白名单验证,进入页面需要登录的,就加loginCheck,点击页面某个方法判断未登录状态跳转登录的,调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) {
            // 没有过期,正常执行
            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 -- 检查页面是否登陆,用法示例:


微信小程序自动登录逻辑分析与实现,页面黑白名单管理(下)_第1张图片
loginCheck

如果onShow无后续操作,也可直接:

loginCheck

:2:goLogin -- 页面未检查登录状态,但点击接口,返回-2时,用法示例:


微信小程序自动登录逻辑分析与实现,页面黑白名单管理(下)_第2张图片
goLogin

你可能感兴趣的:(微信小程序自动登录逻辑分析与实现,页面黑白名单管理(下))