一 概述
小程序登录成功后,将服务器中返回的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
})
}
})
},
})
说明:
3.2 控制台输出结果
is_login: true