修改tocken过期时间
之前在config.json中配置过过期时间是7200秒 app的过期时间是2592000,是30天
在云函数中配置
把tokenExpiresIn
改成30天过期,这里是全平台时间,如果下面在不同平台配置了其他时间,会覆盖这里的时间
{
"passwordSecret": "quanzi",
"passwordStrength": "medium",
"tokenSecret": "quanzi@#z4",
"tokenExpiresIn": 2592000,
"tokenExpiresThreshold": 3600,
"passwordErrorLimit": 6,
"passwordErrorRetryTime": 3600,
"autoSetInviteCode": false,
"forceInviteCode": false,
之前在store中判断用户是否登录是判断是否有userinfo,如果有,就返回true
可以增加判断tocken是否过期
let hostUserInfo = uni.getStorageSync('uni-id-pages-userInfo')||{}
// console.log( hostUserInfo);
const data = {
userInfo: hostUserInfo,
hasLogin: Object.keys(hostUserInfo).length != 0
}
getCurrentUserInfo()
获取当前用户信息
文档位置:
uniapp.dcloud.net.cn/uniCloud/cl…
响应参数
字段 | 类型 | 说明 |
---|---|---|
uid | Number | 当前用户uid |
role | Array | 用户角色列表。admin用户返回["admin"] |
permission | Array | 用户权限列表。注意admin角色此数组为空 |
tokenExpired | Number | token过期时间 |
let hostUserInfo = uni.getStorageSync('uni-id-pages-userInfo')||{}
console.log( hostUserInfo);
console.log(uniCloud.getCurrentUserInfo());
const data = {
userInfo: hostUserInfo,
hasLogin: Object.keys(hostUserInfo).length != 0
}
打印结果中有一个tokenExpired
过期时间 - 当前时间,如果是负值,就表示token过期了
let hostUserInfo = uni.getStorageSync('uni-id-pages-userInfo')||{}
console.log( hostUserInfo);
// 判断toucken是否过期,返回值为负就是过期了
console.log(uniCloud.getCurrentUserInfo().tokenExpired - Date.now());
当用户名和token过期时间都有才返回true,如果已经过期,就清空用户信息
let hostUserInfo = uni.getStorageSync('uni-id-pages-userInfo')||{}
console.log( hostUserInfo);
// 判断toucken是否过期,返回值为负就是过期了
let tokenTime = uniCloud.getCurrentUserInfo().tokenExpired - Date.now()
// 如果token过期,清空用户信息,把用户信息改成空对象
if(tokenTime <= 0)hostUserInfo={}