使用Laravel Passport进行简单身份验证

时间:2017-05-09 10:41:10

标签: laravel oauth laravel-5.4 restful-authentication laravel-passport

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

我想只需要一个访问令牌,只需要电子邮件/用户名和密码就足够了。所以我对上述请求中的额外参数感到困惑。

我阅读了整篇文档,但我没理解如何使用它来实现我想要的目标。

所以问题是我可以使用这个包来满足需求吗?如果是,那怎么样?如果没有,请建议我一些其他包。

由于

1 个答案:

答案 0 :(得分:0)

在简单和一行中解释client_id和client_secret并不容易。 OAuth 2是一种授权框架,使应用程序能够获得对HTTP服务(如Facebook,GitHub和DigitalOcean)上的用户帐户的有限访问权限。它的工作原理是将用户身份验证委派给托管用户帐户的服务,并授权第三方应用程序访问用户帐户。 OAuth 2为Web和桌面应用程序以及移动设备提供授权流程。

此信息指南面向应用程序开发人员,并概述了OAuth 2角色,授权授权类型,用例和流程。

客户端是想要访问用户帐户的应用程序。在此之前,它必须由用户授权,并且必须由API验证授权。

您可以通过以下链接An Introduction to OAuth 2

获得答案