看不懂的UBT
看不懂的UBT
  • 发布:2023-03-21 21:58
  • 更新:2023-03-23 20:42
  • 阅读:550

token过期,无法退出,这个要怎么处理

分类:uniCloud

目前是 token过期了。但是我点击退出,只提示token过期。并无法退出来。这个该怎么处理?

2023-03-21 21:58 负责人:无 分享
已邀请:
看不懂的UBT

看不懂的UBT (作者) - 苦逼的学员

我是用uni-starter 制作的微信小程序

呆狗的一生

呆狗的一生 - 呆狗的一生

这是因为前端的token已经过期,在退出时时,调用了后端函数并检查了token,发现没有携带,所以报错。具体原因是依赖的uni-id-pages组件的版本问题,如 1.0.26 版本中,没有添加对过期的判断。以下是组件中的关键代码:

        // 1. 已经过期就不需要调用服务端的注销接口    2.即使调用注销接口失败,不能阻塞客户端  
        if(uniCloud.getCurrentUserInfo().tokenExpired > Date.now()){  
            try{  
                await uniIdCo.logout()  
            }catch(e){  
                console.error(e);  
            }  
        }

有如下解决方法:

  1. 更新uni-starter所依赖的uni-id-pages
  2. 更新整个 uni-starter
  3. 手动修改 uni_modules/uni-id-pages/common/store.js文件中的 logout 方法,添加如上逻辑!
呆狗的一生

呆狗的一生 - 呆狗的一生

不客气。如果时间字段是用 date 类型存储,可以试试如下方法:

db.collection('head').where(db.command.and([  
    { createTime: db.command.gte(new Date('2022-09-01T00:00:00.000Z')) },  
    { createTime: db.command.lt(new Date('2022-10-01T00:00:00.000Z')) },  
])).get()

上面代码演示了如何查询 head 表整个9月的记录

要回复问题请先登录注册