刷新token
透传uni-id自动刷新的token给客户端
用法
const db = uniCloud.database()
function refreshToken({
token,
tokenExpired
}) {
uni.setStorageSync('uni_id_token', token)
uni.setStorageSync('uni_id_token_expired', tokenExpired)
}
// 绑定刷新token事件
db.on('refreshToken', refreshToken)
// 解绑刷新token事件
db.off('refreshToken', refreshToken)
以上的官方的描述
好像是说tokenExpired过期了,可以主动用这个方法主动无痛刷新token,请求到新的tokenExpired,保存,就不用用户推出去再登录了,可是这个东西怎么用呢?之前admin项目里是通过前端直接判断tokenExpired过期了就退出,也没用到这个刷新token的方法啊。
不知道这个刷新token怎么调用,请解答一下
whr2349 (作者)
哦哦 谢谢 我有点明白了!
可是我在uniid里面设置的长token过期时间1分钟,短token过期时间10秒钟。最终还是1分钟,退出到登录页了。
框架里好像自带了刷新短token的机制吗?我也没用上面的代码。。。。。。所以我一直以为刷新token的这个代码是只要长token过期了,就再请求一个,让客户端一直保持登录呢。
我怎么让客户端一直保持登录呢?是不是要自己写云函数实现啊?
2021-02-03 09:41
DCloud_uniCloud_WYQ
回复 whr2349: 一直保持登录?一般没有这么做的。uni-id的配置里面有个tokenExpiresThreshold,这个的用途是在即将过期时checkToken接口返回新token,重新设置上就行了。可以看一下uni-admin那个云函数的逻辑
2021-02-03 17:34
masion
回复 DCloud_uniCloud_WYQ: 可以看一下uni-admin那个云函数的逻辑在哪看????
2021-05-08 16:03
DCloud_uniCloud_WYQ
回复 masion: 新建项目的时候选择uniCloud admin模板
2021-05-17 14:50
6***@qq.com
回复 DCloud_uniCloud_WYQ:
您好!我对 db.on('refreshToken', refreshToken) 这个有点不理解,这是一个长连接吗?这个后台是怎么触发到前端的?还有 db.on只能监听 refreshToken 、error 这两个事件吗?
2021-06-25 14:57
DCloud_uniCloud_WYQ
回复 6***@qq.com: 在发送clientDB请求时才会触发,不发不会触发,并非长链接
2021-06-25 16:09
6***@qq.com
回复 DCloud_uniCloud_WYQ: 触发原理是客户端的一个事件总线,是这个意思吗?
2021-06-25 16:16