小程序保持持久可用登录态方法实践

2018-10-04  本文已影响0人  笛声hk

近期接手了一个二次开发的项目,对于用户登录态的保持问题很大.
这里分享自己的做法.

要求:

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

ps: 登录和检查方法 需要自己扩展. 图中多处log 主要是因为崩溃信息收集,方便恢复现场.

上一篇下一篇

猜你喜欢

热点阅读