私はjwt(jwt-authを使用)でLaravelを設定しました。私のKernel.phpで - $ routeMiddleware私が追加しました:Laravelとjwt-auth - ユーザーがログインしているかどうかを確認する方法
'jwt.auth' => \Tymon\JWTAuth\Middleware\GetUserFromToken::class,
'jwt.refresh' => \Tymon\JWTAuth\Middleware\RefreshToken::class
私は自動的に要求ごとにユーザーの新しいトークンを作成/更新されます「jwt.refresh」それを理解しています。
public function isAuthenticated() {
$token = JWTAuth::getToken();
if(!$token){
throw new JWTException('Token not provided');
}
try{
$token = JWTAuth::refresh($token);
}catch(TokenInvalidException $e){
throw new AccessDeniedHttpException('The token is invalid');
}
return $this->response->withArray(['token'=>$token]);
}
問題がにisAuthenticated()がJWTAuth呼び出されたときにということである:私は、ユーザーがそのように私は、この関数を呼び出して、ルートを追加したログインしているかどうかを確認する必要があり、私の単一ページのAjaxアプリで
:: refresh($ token)呼び出しが失敗します。
トークンがリフレッシュされることとは関係があります。
私がしたいのは、クライアントのトークンが有効であれば真を返すことです。 これを行う方法はありますか?
'jwt-refresh'を削除しても問題は解決しないようです。
ありがとうございます!