2

OAuth2 を使用し、3600 秒で期限切れになるアクセス トークンを提供し、更新トークンを提供する API を使用しています。当初、私はアクセス トークンの有効期限が切れていることを示す方法で API 呼び出しが失敗するのを待ってから、更新トークンを使用してアクセス トークンを更新しようとしました。これは、アクセス トークンの有効期限が切れ、複数の API 呼び出しが同時に行われた場合に問題になります (各呼び出しは個別に更新をトリガーし、ほとんどの呼び出しは失敗します)。

3600 秒後に更新トークンを使用してアクセス トークンを自動的に更新する方がよいでしょうか? (または 3599 秒または 3601 秒ですか?) アクセス トークンを更新するために使用する必要がある別のパラダイムはありますか?

4

2 に答える 2

1

理想的には、クライアントは期限切れのアクセス トークンを使用しないように十分なスマートを備えている必要があります。幸いなことに、OAuth AS のトークン エンドポイントからの応答には、有効期限が 3600 秒であることを確認するために expires_in 属性が含まれている必要があります。例えば:

{"token_type":"Bearer","expires_in":3600,"refresh_token":"p8BPdo01kkjh6fhatclD3wwBEQblm4kL4ctYRVlrHo","access_token":"9XebAAXeu6hQOAiwmOk8vdhRyUFV"}

この JSON 応答はサーバーによって生成されるため、クライアントへの送信に時間がかかる可能性があるため、「expires_in」の値は表示よりも小さい場合があります。

そのため、更新トークンを自動的に使用して新しいアクセス トークンを要求するために、有効期限が切れる前にある種のバッファー (たとえば 5 ~ 10 秒) を確保することをお勧めします。

于 2012-08-28T15:51:18.013 に答える