【问题标题】:How to replace a new api access token with the old one laravel passport如何用旧的 laravel 护照替换新的 api 访问令牌
【发布时间】:2020-03-19 22:24:32
【问题描述】:

我需要生成访问令牌,而控制器上的方法将被特定路由调用。我的问题是如何为登录用户生成一个新的访问令牌并将其替换为旧的(在 oauth_access_tokens 表中,例如更新用户状态或令牌)。
我需要删除旧的访问令牌并将其替换为新的。在我的情况下,护照有一个生命周期,每次用户做某事或完成或完成一个动作(例如调用路线等......),我需要生成一个新的访问令牌并将其替换为现有的一个。

【问题讨论】:

  • @PrafullaKumarSahu 谢谢,我试过了,但是给定的刷新令牌没有对用户进行身份验证,而且旧的访问令牌的记录仍然存在。
  • 您需要用新的替换现有的。
  • 谢谢,我可以换新的吗?
  • 是的,下次您可以使用此生成另一个刷新令牌并再次替换。

标签: laravel api token laravel-passport


【解决方案1】:

documentation 中,很清楚地提到,您需要使用您的访问令牌,生成一个刷新令牌,然后您可以用它替换您现有的访问令牌。

$http = new GuzzleHttp\Client;

$response = $http->post('http://your-app.com/oauth/token', [
    'form_params' => [
        'grant_type' => 'refresh_token',
        'refresh_token' => 'the-refresh-token',
        'client_id' => 'client-id',
        'client_secret' => 'client-secret',
        'scope' => '',
    ],
]);

return json_decode((string) $response->getBody(), true);

现在您可以采用多种选择:

  • 在使用了刷新令牌和新的访问令牌时撤销 已发出
  • 由与令牌关联的用户手动撤销
  • 在预定时间后撤销

查看oauth_access_tokensoauth_refresh_tokens 表格,这将帮助您了解需要在此处手动更新的内容。

【讨论】:

    猜你喜欢
    • 2017-09-13
    • 2020-12-18
    • 2021-07-16
    • 2021-12-03
    • 2017-11-25
    • 2019-05-15
    • 1970-01-01
    • 2023-01-24
    • 1970-01-01
    相关资源
    最近更新 更多