1

私は独自の OAuth2 プロバイダーを実装しようとしてきましたが、refresh_token の部分で少し立ち往生しています。APIまたはクライアント側でrefresh_tokenを確認する必要がありますか? 私が不明確な場合は、シナリオを示します。

checkTokenトークンが無効か期限切れかをチェックする API 側の関数があるとします。私は無効なテストを簡単に通過します。次に、期限切れの部分を確認します。だから、私にとってトリッキーな部分はここにあります。関数checkTokenに追加する必要があります

if(findRefreshToken($client_id, $user_id)) {
  $this->grantRefreshToken($client_id, $client_secret, $user_id);
} else {
   $this->error(401, 'Token expired');
}

または、エラー 401 のみが発生し、クライアントはそれを処理する方法を見つける必要がありますか?

4

1 に答える 1

1

このライブラリを使用してoAuthライブラリとAPIを実装したときの私の経験は次のとおりです。

  1. ライブラリとして実装している場合は、checkToken と refreshToken を別々に用意する必要があります。そのため、API は (要件に応じて) トークンのチェック/検証中にトークンを更新するかどうかを決定できます。

  2. APIで行う場合も、要件によって異なります。要件が、ユーザーセッションが最後のアクセスからしばらくの間(たとえば4時間)アクティブである必要がある場合は、チェックするたびにトークンを更新することをお勧めします/トークンの検証。クライアントでも同じリフレッシュ トークンを実行できますが、問題は、API 呼び出しごとにクライアントがリフレッシュ トークンを呼び出さなければならないことです。つまり、API ごとに 2 回の呼び出しが発生します。

これが明確になることを願っています。

于 2013-07-23T06:01:26.613 に答える