微信小程序开发之——用户登录-检查用户是否已经登录(4)

一 概述

  • 小程序登录成功后,将服务器中返回的token保存在数据缓存中
  • 下次启动小程序时,判断数据缓存中是否存在token
  • 如果存在token,直接取出token即可,不在执行登录操作
  • token过期,需要重新执行登录

二 服务器端(index.js)——checklogin

//检测token是否有效
app.get('/checklogin',(req,res)=>{
    var session=db.session[req.query.token];
    console.log('checklogin:'+session);
    //将用户是否登录的布尔值返回给客户端
    res.json({is_login:session!==undefined});

 } )

说明:根据token取出的session是否为undefined

  • 如果是undefined,说明token已经过期
  • 如果不是undefined,说明token有效

三 小程序端

3.1 代码(app.js)

App({
  onLaunch() {
    this.checkLogin(res => {
      console.log('is_login:', res.is_login)
      if (!res.is_login) {
        this.login()
      }
    })
  },
  globalData: {
    token: null //保存token
  },
  //检测是否已经登录
  checkLogin: function (callback) {
    var token = this.globalData.token
    if (!token) {
      //从数据缓存中获取token
      token = wx.getStorageSync('token')
      if (token) {
        this.globalData.token = token;
      } else {
        callback({
          is_login: false
        })
        return
      }
    }
    wx.request({
      url: 'http://127.0.0.1:3000/checklogin',
      data: {
        token: token
      },
      success: res => {
        callback({
          is_login: res.data.is_login
        })
      }
    })
  },
})

说明:

  • 小程序启动后检查用户是否已经登录,如果没有登录执行登录操作
  • 在token有效的情况下,控制台中可以看到输入结果is_login:true,,表示用户已经登录

3.2 控制台输出结果

is_login: true

四 参考源码

  • 9
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 14
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值