JWTで最初のAPIを構築しています。私はこの定型プロジェクトを使用しています:https://github.com/krisanalfa/lumen-jwtLaravel LumenでJWTを使用したトークンリフレッシュの流れ
私はそれがうまくいくように管理しましたが、私は大きな問題があります。ユーザトークンは、しばらくして失効し、アプリケーションからログアウトします。私は/api/auth/をリフレッシュするためにトークンをリフレッシュするプロジェクトのドキュメントを読んだが、今は2つの大きな欠点があると私には思われる。
1)トークンをリフレッシュするためにAPIを1回呼び出すだけであれば、X分(トークンの期限切れの時間)ごとに呼び出すタイマーを設定する必要があると思います。
2)ユーザーが3時間コンピュータをオフにすると、再度オンにすると、トークンは既に有効期限が切れているため、リフレッシュは使用できなくなり、ユーザーをログオフします。
私はこれを初めて知ったので、何か不足していますか?トークンリフレッシュサイクルをこれらの欠点なしでどのように動作させることができますか?
私はこれをやろうとしていますが、DingoはRefreshを呼び出すとトークンの有効性をチェックしていますが、「Token Expired」というメッセージが表示されます。何が起きているのでしょうか? – raphadko
リフレッシュルート 'api.auth.refresh'は' api.auth'ミドルウェアグループの中にあるからです。したがって、ミドルウェアはコントローラルートに到達する前に妥当性をチェックしています。あなたがそれを外に動かすと、うまくいくかもしれません。 – fubar
私はjwt.refreshミドルウェアを使用していますが、最初のリクエストでうまくいきます。その後、新しいトークンを読み取ることができません。私がconsole.logを実行すると(request.getAllResponseHeaders());トークンは表示されず、 "Content-Type:application/json Cache-Control:private、must-revalidate"と表示されます。それを読む方法は? – raphadko