近期接手了一个二次开发的项目,对于用户登录态的保持问题很大.
这里分享自己的做法.
要求:
1.token有效时间一般在数小时内过期,小程序的自动销毁时间一般是在5分钟,token没有必须要每次去存取.
2.为保证token是否过期,需要检查.
3.需要对用户信息进行存储
code:
//------login start
/**登录流程:
* 先检查本地是否存储token
* token存储检查是否过期
* 过期执行登录操作,操作完毕,接着执行检查操作.
* 未存储token,执行登录操作,操作完毕检查操作
* 注意:登录检查,同时也获取用户信息保存.
*
**/
//check the local token
getStorageByKey({ key: "jwtToken"}).then((data)=>{
//check whether the token is out of date
log("start action check")
check().then((data)=>{
log("token is vaild,the userinfo is",data)
}).catch(err=>{
log("token is invaild,start login",1)
login().then(data=>{
check()
}).catch(err=>{
log("!!!login error must be resolved!!!",1)
log(err,1)
})
})
}).catch((err)=>{
//start action login
log("jwtTOken is not stored,start action login")
login().then(()=>{
check().then(data=>{
log("token is vaild,the userinfo is")
log(data)
})
}).catch((err)=>{
//login error,just show modal
log("!!!login error must be resolved!!!", 1)
toast("fail",err)
})
})
//------login end
网友评论