【发布时间】:2017-10-07 15:13:54
【问题描述】:
我是 API 世界的新手。
根据互联网研究,我想这就是基本 API 身份验证的工作原理(如果我错了,请纠正我)
客户端(如移动应用),使用从移动应用输入的用户名/电子邮件和密码向服务器发出请求
服务器将验证这些凭据,如果它们正确,则创建一个访问令牌并作为响应发回
对于所有其他后续请求,客户端将在请求中发送该令牌,以便服务器可以对请求进行身份验证
基本上,我想在 Laravel 中实现以上功能,所以我发现有一个名为 Laravel 护照的包可以提供帮助:
https://laravel.com/docs/master/passport
我不明白的是获取访问令牌的请求参数:
https://laravel.com/docs/master/passport#password-grant-tokens
$http = new GuzzleHttp\Client;
$response = $http->post('http://your-app.com/oauth/token', [
'form_params' => [
'grant_type' => 'password',
'client_id' => 'client-id',
'client_secret' => 'client-secret',
'username' => 'taylor@laravel.com',
'password' => 'my-password',
'scope' => '',
],
]);
return json_decode((string) $response->getBody(), true);
我想只获得一个访问令牌,电子邮件/用户名和密码就足够了。所以我对上述请求中的额外参数感到困惑。
我阅读了整个文档,但我不明白如何使用它来实现我想要的。
所以问题是我可以根据需要使用这个包吗?如果是,那怎么办?如果没有,请给我推荐一些其他的包。
谢谢
【问题讨论】:
-
您的要求是基于 API 的身份验证的标准,而 Laravel Passport 非常适合您想要实现的目标。只需谷歌,您就会找到如何实现您的要求的教程。
-
code.tutsplus.com/courses/build-a-rest-api-with-laravel 是一个很棒的教程,完全涵盖了您的要求
-
@SapneshNaik,问题已编辑。你能告诉我一个使用 Laravel 护照获取访问令牌的请求吗?
标签: laravel oauth laravel-5.4 restful-authentication laravel-passport