编程语言
首页 > 编程语言> > php – Laravel Passport密码授予刷新令牌

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);

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

标签:php,laravel,ios,authentication,laravel-passport
来源: https://codeday.me/bug/20190724/1522543.html