Php oauth2如何处理刷新令牌

Php oauth2如何处理刷新令牌,php,client,oauth-2.0,Php,Client,Oauth 2.0,我一直在尝试实现我自己的OAuth2提供程序,我在刷新令牌部分有点卡住了。我应该如何处理它?我应该在API或客户端检查刷新令牌吗?如果我不清楚,我将给出一个场景: 假设我在API端有一个函数检查令牌是否无效或过期。我轻而易举地通过了无效测试。然后我检查过期的部分。所以棘手的部分就在这里。在函数checkToken中,我应该添加 if(findRefreshToken($client_id, $user_id)) { $this->grantRefreshToken($client_id

我一直在尝试实现我自己的OAuth2提供程序,我在刷新令牌部分有点卡住了。我应该如何处理它?我应该在API或客户端检查刷新令牌吗?如果我不清楚,我将给出一个场景:

假设我在API端有一个函数检查令牌是否无效或过期。我轻而易举地通过了无效测试。然后我检查过期的部分。所以棘手的部分就在这里。在函数
checkToken
中,我应该添加

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

或者我应该只出现错误401,而客户端会发现如何处理它?

以下是我使用该库实现oAuth库和api的经验

  • 如果要将其实现为库,则需要将checkToken和refreshToken分开。因此,api(根据需要)可以在检查/验证令牌时决定是否刷新令牌

  • 在api中执行此操作时,同样取决于要求。如果要求用户会话从上次访问开始应处于活动状态一段时间(例如4小时),则最好在每次检查/验证令牌时刷新令牌。可以在客户端上执行相同的刷新令牌,但问题是客户端必须在每次api调用后调用刷新令牌,这意味着每个api将有2个调用


  • 希望这能澄清。

    以下是我使用该库实现oAuth库和api的经验

  • 如果要将其实现为库,则需要将checkToken和refreshToken分开。因此,api(根据需要)可以在检查/验证令牌时决定是否刷新令牌

  • 在api中执行此操作时,同样取决于要求。如果要求用户会话从上次访问开始应处于活动状态一段时间(例如4小时),则最好在每次检查/验证令牌时刷新令牌。可以在客户端上执行相同的刷新令牌,但问题是客户端必须在每次api调用后调用刷新令牌,这意味着每个api将有2个调用


  • 希望这能澄清问题。

    这很有道理,我明白为什么我要单独保存它。我想打两个电话更容易受到黑客攻击。这很有道理,我明白为什么我要把它分开。我想打两个电话更容易受到黑客攻击。