oauth2如何处理刷新令牌

时间:2013-07-23 04:17:51

标签: php client oauth-2.0

我一直在尝试实现自己的OAuth2提供程序,而且我在refresh_token部分有点困难。我怎么想处理它?我应该在API或客户端检查refresh_token吗?如果我不清楚我会给出一个场景:

假设我在API端checkToken中有一个函数来检查令牌是无效还是已过期。我很容易通过无效测试。然后我检查过期的部分。所以棘手的部分就在这里。在函数checkToken中我应该添加

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

或者我应该只有错误401并且客户端发现如何处理它?<​​/ p>

1 个答案:

答案 0 :(得分:1)

以下是使用此库实现oAuth库和api时的经验。

  1. 如果您将其实现为库,则需要单独使用checkToken和refreshToken。因此api(取决于要求)可以在检查/验证令牌时决定是否刷新令牌。

  2. 当在api中进行时,它又取决于要求。如果要求是用户会话应该从他上次访问开始活动一段时间(比如4小时),那么最好刷新令牌每次检查/验证令牌时。可以在客户端上完成相同的刷新令牌,但问题是客户端必须在每次api调用后调用刷新令牌,这意味着每个api都会有2次调用。

  3. 希望这会澄清。