2017-07-06 8 views
0

サードパーティのAPIサービスに接続するAPIクライアントがあります。アクセストークンをグローバルに保存し、スレッドセーフな方法で期限切れになると再読み込みします

問題は、最初に認証してから、使用する期限切れのトークンを取得することです。

APIをASP.NET MVCアプリケーションで使用し、トークンが期限切れになった場合にも追跡できます。再認証してからAPI呼び出しを失敗(トークンが期限切れになる)する必要があります。

List<User> users = api.getUsers(); 

apiクライアントトークンの有効期限が切れた場合は、再認証してから呼び出しを行う必要があります。最初の呼び出しが "期限切れのトークン"で失敗するため、再認証後にapi.getUsersを再呼び出しする方法はありますか?

思考?

答えて

0

トークンの検証を可能にするサービスコールがある場合、認証オブジェクトにゲッターのトークンをチェックさせ、それが有効でないときはいつでも認証してください。

私はtry/catchを使用し、要求を認証して繰り返すことで期限切れのトークン例外を処理します。リピートは、キャッチ内のスタンドアロンコードブロックであるか、認証が最後に呼び出されたかどうかをチェックし、n回試行した後で例外をスローするオブジェクトが必要です。

私はいくつかの他のアプローチがあると確信しています。これはすぐに思い浮かぶものです。

+0

問題は、これを1つの場所で行うパターンを考えようと、すべてのAPIコールメソッドでこれを繰り返す必要はありません。 –

+0

サービスにはトークンが必要です。したがって、トークンが有効かどうかをチェックして有効なトークンを返すgetTokenメソッドでは、認証を呼び出すメソッドが1つしかありません。これを拡張して、トークンを必要とするすべてのコードに対してこれを実行するためのパラメータを取ることができます。 –

関連する問題