2016-11-08 8 views
1

私はAngular 1.5.8とLaravel 5.2を使ってアプリケーションを作成しています。 Luca Degasperiのライブラリを使用してトークンベースの認証を作成していますhttpリクエストの前にアクセストークンを確認してください

経由で私はaccess_token、TTLおよびrefresh_tokenを受け取ります。私はlocalStorageにaccess_tokenとrefresh_tokenを保存します。私はaccess_tokenを使用して、私のAPIからデータを取得するための呼び出しを行うことができます。トークンが期限切れになると、トークンが401コードで無効であるというメッセージが表示されます

私のAPIにhttpリクエストを送信する前にトークンが有効かどうかを確認する方法は私の質問ですか?トークンをリフレッシュする最良の方法は何ですか? [OK]を、私のトークンを更新するための要求をhttps://my.api/oauth?grant_type=refresh_token&refresh_token=f32j93201h00xpaf1に送ることができますが、すべてのhttp要求の前にそれをチェックする方法は?応答コードが401の場合にコールを繰り返すことはできますか?そしてどうやって?

私にいくつかアドバイスをしてください。

+0

[$ httpエラーレスポンスインターセプタ](https://docs.angularjs.org/api/ng/service/$http#interceptors)を使用することができます。応答コードが401の場合は呼び出しを繰り返します。 – georgeawg

答えて

1

数日前とまったく同じ問題がありました。 )また、this articleが本当に役に立ちました

0

できません。あなたはログインと照合する必要があります。したがって、それは単なる再ログインです。

401が表示されたら、リフレッシュトークンは既に完了していると思います。

私はあなたがあなたのすべてのリクエストでそのリフレッシュトークンに参加することはできますか?私は間違っているかもしれません。

あなたのトークンTTLは、(APIへのリクエストのように)随時TTLをリフレッシュして常に最新のものであることを確認してください。

0

トークンがまだアクティブであるかどうかを判断するためにTTLを使用できませんか?トークンをローカルストレージに保存すると、トークンが保存された日付/時刻を追加することができます。サービスコールを行うたびに、トークンが保存されていた時間に対してTTLを確認できます。

ただし、有効期限が切れたときにのみ表示され、その他の理由でトークンが無効になっている場合は表示されません。

関連する問題