【问题标题】:Simple authentication using Laravel Passport使用 Laravel Passport 进行简单的身份验证
【发布时间】: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


【解决方案1】:

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

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

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

也许你会在下面这个链接中得到答案An Introduction to OAuth 2

【讨论】:

    猜你喜欢
    • 2019-01-31
    • 2019-12-20
    • 2014-01-01
    • 2020-12-30
    • 2018-05-07
    • 2017-07-08
    • 1970-01-01
    • 2018-02-15
    • 1970-01-01
    相关资源
    最近更新 更多