微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – Laravel Passport密码授予刷新令牌

尝试使用Laravel的Passport和移动客户端.密码授权类型的身份验证似乎是要走的路,我让它与我的iOS应用程序一起工作,但是我无法让令牌刷新工作.

在进行身份验证时,我会获得一个令牌和我存储的刷新令牌,但是当令牌过期时,调用oauth / token / refresh路由不起作用.该路由正在使用Web中间件,这意味着我的app使用api路由无法访问它.我不确定他们是否打算让移动客户永远不刷新,或者他们是否希望你自己刷新?如果有人了解这应该如何工作,那就太好了.

解决方法:

oauth / token / refresh路由不用于刷新访问令牌.它用于刷新瞬态令牌,当您从javascript使用自己的API时使用.

要使用refresh_token刷新访问令牌,需要使用grant_type为refresh_token调用oauth / token路由.

这是the 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);

关于范围的一个注释,当您刷新令牌时,您只能获得与原始访问令牌相同或更窄的范围.如果您尝试获取原始访问令牌未提供的作用域,则会出现错误.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐