标签:php laravel ios authentication 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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。