我是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);
我想只需要一个访问令牌,只需要电子邮件/用户名和密码就足够了。所以我对上述请求中的额外参数感到困惑。
我阅读了整篇文档,但我没理解如何使用它来实现我想要的目标。
所以问题是我可以使用这个包来满足需求吗?如果是,那怎么样?如果没有,请建议我一些其他包。
由于
答案 0 :(得分:0)
在简单和一行中解释client_id和client_secret并不容易。 OAuth 2是一种授权框架,使应用程序能够获得对HTTP服务(如Facebook,GitHub和DigitalOcean)上的用户帐户的有限访问权限。它的工作原理是将用户身份验证委派给托管用户帐户的服务,并授权第三方应用程序访问用户帐户。 OAuth 2为Web和桌面应用程序以及移动设备提供授权流程。
此信息指南面向应用程序开发人员,并概述了OAuth 2角色,授权授权类型,用例和流程。
客户端是想要访问用户帐户的应用程序。在此之前,它必须由用户授权,并且必须由API验证授权。
您可以通过以下链接An Introduction to OAuth 2
获得答案