当前位置: 首页 > 工具软件 > jwt-auth > 使用案例 >

thans/tp-jwt-auth 如何写自动刷新token逻辑

穆智刚
2023-12-01
catch (TokenExpiredException $e) {
            // 尝试刷新token
//            uapi_exit('登录信息已过期,请重新登陆', $data = [], $other = '', $code = '4001');
            //自动登录  在响应头的header上
            try {
                $this->auth->setRefresh();
                $token = $this->auth->refresh();
             	//这个可以去掉 多余的
                $token = $token ?: $this->auth->refresh();
                $this->auth->setToken($token);
               //这个我测试存的缓冲 可以不用管
                Cache::set('jwt_token','Bearer '.$token,604800);
                if (in_array('cookie', Config::get('jwt.token_mode'))) {
                    Cookie::set('token', $token);
                }
                if (in_array('header', Config::get('jwt.token_mode'))) {
                    header('Authorization:Bearer '.$token);
                }
               //重新给解密的信息赋值
                $data = JWTAuth::auth();
                $request->account_info = $data;
                return $next($request);
            } catch (TokenBlacklistGracePeriodException $e) { // 捕获黑名单宽限期
              
                uapi_exit('登录信息已过期,请重新登陆', $data = [], $other = '', $code = '4001');
            }
  }          
 类似资料: