对于Token的一些个人记录

3 篇文章 0 订阅
1 篇文章 0 订阅

Token:在计算机身份认证中是令牌(临时)的意思,在词法分析中是标记的意思。一般作为邀请、登录系统使用。

Token首先它是一个用作验证身份的令牌,其次它的存在是有时效的,到期失效,并且token中是可以存储一些信息的,可以进行一些用户信息的传递以及验证。

以上是我理解的token,以下是我在项目中的具体使用。

首先说背景:这个项目里有微信小程序端,WebService接口端,vue的后台管理端。

如何使用?

在这个项目中,我是把token放在Request Headers里的,这里我只提供我自己,网上有很多具体的例子。

微信端:

      header: {
                  'Content-Type': 'application/json',
                  "Authentication-Token": that.globalData.userInfo.token
                },

web端:

      if(store.state.user.token){
        config.headers.common['Authentication-Token']=store.state.user.token
      }

 

服务器端:

        response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Access-Control-Allow-Headers", "Content-Type,Authentication-Token");
        response.setHeader("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
        String token = request.getHeader("Authentication-Token");

过期如何处理?

微信端:当身份过期了,重新调用login接口获取token并再次发送上次的网络请求,保证用户体验。(可封装网络请求,统一处理)

            requestObj.resolve = resolve;
            promiseQueue.push(requestObj); //请求失败了,把该请求放到promise队列,等待更新token后重新调用。
            if (!that.globalData.needBeginLogin) { //如果不需要重新登录
              return;
            }
            //防止重复调用login。
            that.globalData.needBeginLogin = false;
            that.login(() => { //获取完token以后执行回调
              //重新登陆以后调用一次队列中的promise;并设置队列为可循环状态。
              let promiseQueueItem = promiseQueue.shift();
              if (promiseQueueItem) {
                that.globalData.exeQueue = true;
                that.promiseRequest(promiseQueueItem);
                that.globalData.promiseQueue = promiseQueue;
              }
            }, true)


       web端:当身份过期了,直接返回到登陆页面。

       logout(state.token).then(() => {
          commit('setToken', '')
          commit('setAccess', [])
          resolve()
        }).catch(err => {
          reject(err)
        })


       服务器端:在filter里直接判断,如果过期,直接打回去。

        String token = request.getHeader("Authentication-Token");
                    if (!JwtUtil.verify(token)) {
                        response.setStatus(601);
                        return false;
                    }

以上只是我作为一个萌新的个人使用的记录,都是一些代码片段,仅提供一种思路。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值