Closed tyson239 closed 4 years ago
我通过自己写中间件,置于此项目提供的JWTAuth中间件后,使用getPayload()来把payload写到$request里来让控制器获取payload里的数据。
getPayload()
<?php namespace app\middleware; use thans\jwt\facade\JWTAuth; class Auth { public function handle($request, \Closure $next, $name) { $payload = JWTAuth::getPayload(); if(empty($payload['sid']) || empty($payload['uid'])) return json(['code' => 1, 'msg' => '登录态超时']); $jwt_array = []; foreach($payload as $val){ $jwt_array[$val->getName()] = $val->getValue(); } $request->jwt = $jwt_array; return $next($request); } }
但如果使用JWTAuthAndRefresh这个中间件,在token过期后,getPayload()也会报token过期的错误,以至于无法获取到payload信息,请问这种情况该如何处理呢?
JWTAuthAndRefresh
刚看了下,之前没有考虑这个问题。没有对应的方法。 use Lcobucci\JWT\Parser;
$P = new Parser(); dump($P->parse($token)->getClaims());
这样,$token传字符串
好的,谢谢
我通过自己写中间件,置于此项目提供的JWTAuth中间件后,使用
getPayload()
来把payload写到$request里来让控制器获取payload里的数据。但如果使用
JWTAuthAndRefresh
这个中间件,在token过期后,getPayload()
也会报token过期的错误,以至于无法获取到payload信息,请问这种情况该如何处理呢?