小程序
小游戏
企业微信
微信支付
扫描小程序码分享
我在登录成功的时候,把openid存入globalData全局变量里,然后在其他页面取,一开始是没问题的,但是过了半小时不到,再次打开页面的时候,存在globalData里面的openid就没了,但我在globalData里面写死的域名是一直存在的,只有赋值的openid没了
用过checkSession,判断是登录状态,并没有退出,也考虑过是onLoad执行的速度比app.js快,但用了setTimeout延迟了几秒还是没获取到,请问该怎么解决?(最好先不用缓存)
6 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
半个小时,小程序都销毁了吧,在重新进去的时候,得要重新登录了,不知道你这个判断登录状态是什么情况。。
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
应该是你逻辑写的有问题,根据你的说法,我的反应是你编译一下,但是没有再次执行登录事件,所以openid就空了
可以wx.setStorage里面
一般整个小程序也就只有这个id需要存入缓存,任何在其他页面获取缓存,没有缓存就重新登入,有缓存就请求看这个缓存id有没有失效,失效就重新登录没失效接着走下一步
为啥先不用缓存?
写死的肯定一直都在呀,难道还跑了不成?
根据你描述的情况,估计是代码写得有问题
wx.checkSession({
success () {
//session_key 未过期,并且在本生命周期一直有效
setTimeout(function () {
var openid = app.globalData.openid;
if(openid == ''){
wx.showModal({
title: '提示',
content: 'openid为空',
success (res) {
}
})
}, 1000);
},
fail () {
// 登录
wx.navigateTo({
url:'../login/login',
success: function (res_user) {
if (res_user.data.status == 0) {
app.globalData.openid = res_user.data.data.openId;
globalData不好用 存缓存吧
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
半个小时,小程序都销毁了吧,在重新进去的时候,得要重新登录了,不知道你这个判断登录状态是什么情况。。
应该是你逻辑写的有问题,根据你的说法,我的反应是你编译一下,但是没有再次执行登录事件,所以openid就空了
可以wx.setStorage里面
一般整个小程序也就只有这个id需要存入缓存,任何在其他页面获取缓存,没有缓存就重新登入,有缓存就请求看这个缓存id有没有失效,失效就重新登录没失效接着走下一步
为啥先不用缓存?
写死的肯定一直都在呀,难道还跑了不成?
根据你描述的情况,估计是代码写得有问题
wx.checkSession({
success () {
//session_key 未过期,并且在本生命周期一直有效
setTimeout(function () {
var openid = app.globalData.openid;
if(openid == ''){
wx.showModal({
title: '提示',
content: 'openid为空',
success (res) {
}
})
}
}, 1000);
},
fail () {
// 登录
wx.navigateTo({
url:'../login/login',
})
}
})
success: function (res_user) {
if (res_user.data.status == 0) {
app.globalData.openid = res_user.data.data.openId;
globalData不好用 存缓存吧