2016-05-05 5 views
3

短期間のアクセストークンと長寿命のリフレッシュトークンを使用して、OAuth 2で保護されたサーバーを呼び出すjavascriptブラウザアプリケーション(SPA)を使用しています。 私のサーバと私の認証サーバ(私のOAuth)ですが、短期間のアクセストークン(またはトークンベースのサービス)を持つGoogleやその他のOAuth 2認証サーバを使用していた場合に問題が発生します。Oauthアクセストークンの有効期限が切れたときにajaxコールを破棄しないようにするにはどうすればよいですか?

jQuery $ .ajax()を使用してサーバーに呼び出しを行うとします。 無効なトークンを使用して呼び出しを行うと、サーバーは401を返し、リフレッシュトークンを使用して新しいアクセストークンを要求する必要があります。私は必要ないし、ユーザーを気にしたくない、私のアプリはそれらなしで再認証することができます。

トークンは短命ですが、これは5分ごとまたは1時間ごとに発生する可能性があります。私が投稿をしているときにそれが起これば、私はその情報を失いたくはありません。私はその投稿を繰り返す必要があります。

私はこれらのajax呼び出しをたくさん作成する傾向があり、最初に応答する保証はありません。結局、これらは非同期です。

私はこれにどのように対処しますか? 401を取得したときに投稿を再生する簡単な方法はありますか?同時に多くの通話がうまく機能するようにうまく動作しますか?

また、これはOAUthクライアントの一般的な問題ではありませんか?なぜ私はそれのための多くのドキュメントとライブラリを見つけることができないのですか?

(私はこのようないくつかの、発見した:https://github.com/esbenp/jquery-oauthを、私は、これはどこでもソリューションで主流の問題よりことが期待でしょう)

答えて

0

あなたはすべての要求の前にトークンの有効期限を確認する必要があります。トークンが期限切れになっている場合は、リフレッシュ・プロセスを開始し、トークンを更新した後に要求を行います。理想的には、トークンの有効期限を知っていれば、そうでなければ401応答と照合することができます。 OAuth 2では、トークンの有効期限を知る必要があります。これは、認証を必要とする各要求の前に単純なチェックを実行することができます。

関連する問題