2016-05-05 18 views
1

私はLaravel 5.2とtymondesigns/jwt-authを使用しています。Laravel JWTの再認証時に古いトークンをブラックリスト

ユーザーがログアウトせずに再度ログインした場合、古いトークンをブラックリストに登録することはできますか?私は古いトークンのセキュリティについて興味があります。

私は現在、APIとしてLaravelを使用しているため、モバイルデバイスの「常にログインしています」を改善する方法についての提案はありません。

私の現在の構成は次のとおりです。TTL = 1時間& refresh_ttl = 2週間

答えて

0

実際には@ジェフの回答が問題を解決する可能性があります。 jwt.refreshミドルウェアを使用する必要があります。私は戻ってfileからCACHE_DRIVERjwt.refreshとして復帰、それを用いて試験しているCACHE_DRIVER

としてarrayを使用していますので、

マイJWTのブラックリストが機能していない、それがあるべきような作品は、古いトークンがブラックリストに載っているです。

これを答えとしてマークします。ありがとう、ジェフ。

3

あなたが応答でヘッダーとして新しいトークンを送り返しjwt.refreshミドルウェアを、使用することができます。ブラックリストを有効にすると、古いトークンはすぐにブラックリストに登録されます。ログインルートにjwt.refreshを含めるだけで、レスポンスヘッダーをキャプチャしてローカルキーを更新するようにしてください。その後、ttlrefresh_ttlを無制限(つまり60*60*24*365*10)にすることができます

+0

私は 'jwt.refresh'を追加しました。トークンが各要求で更新されていますが、古いトークンはブラックリストに載っていません。 jwt設定ファイルをチェックしたところ、ブラックリストはすでに有効になっています。何か案が? –

+0

猶予期間が有効になっていますか? ''blacklist_grace_period' => 0、' – Jeff

+0

まだ古いトークンをブラックリストに入れることはできません。なぜ、どのようにこれを解決するためのアイデアはまだありません。実際には、私は[SampleApi](https://github.com/zulfajuniadi/sampleapi)をこのプロジェクトに使用しています。 –

0

ユーザーの最初のログイン時にトークンを格納するためのテーブルを作成できます。

そのユーザーが再びログインすると、古いトークンがテーブルから取得され、古いテーブルにブラックリストが追加され、ログイン直後に新しいテーブルが更新されます。

関連する問題