在哪些情况下使用 laravel passport 会带来一些优势?

In which cases using of laravel passport gives some advantage?

我现在阅读https://laravel.com/docs/6.x/passport,技术上很清楚,但在哪些情况下我必须使用它来获得 与 laravel native auth 或 jwt/auth 我以前工作过相比的优势?

1) 在 config/auth.php 'guards' 中,我们设置应用程序中将使用哪个授权驱动程序 它只能是一套。我的意思是我们不能在 1 个应用程序中设置护照和 jwt/auth?

2) 如果我们使用 blade 页面并像在 blade 页面中那样提交表单,则看起来可以使用 passport as :

   <form method="POST" action="{{ route('register') }}">
       @csrf

我想 blade 使用护照而不是本地身份验证的表单定义没有区别吗?

3) 此外,可以在后端 API 中使用 passport 代替 jwt/auth 并且客户端应用程序的工作没有区别 使用此后端 rest API ?

4) 护照 better/has 在这两种情况下是否都有优势,还是只是多了一个替代品?

5) 请举例说明护照可以在哪些地方使用/可以在其他一些应用类型中使用它?

谢谢!

Laravel Passport 是一个 Laravel 包,它允许您将 OAUTH2 协议集成到您的应用程序中。

这意味着当您希望其他服务从您的应用程序中检索用户数据或添加数据时,它们可以为用户请求访问权限。用户可以通过单击外部站点上的按钮、在您的 Laravel 站点上登录他们的帐户并允许访问外部服务来授予某些操作的权限。然后用户被重定向回另一个网站,在两个服务器之间发出几次请求后,外部服务现在具有读取或更改用户数据的请求权限。只要您单击 "sign on with ...",几乎总是会使用此协议,因为所有大型社交媒体平台都集成了 OAUTH2。

回答您的问题:

  1. 我相信这个问题:Laravel combine Passport authentication and normal authentication 会回答你的问题。
  2. Passport 位于默认 Laravel 身份验证之上,需要它来验证请求。因此用户仍然必须在您的网站上拥有一个帐户才能允许其他网站访问您的帐户。
  3. 普通 API 身份验证的工作方式与 Passport 的工作方式有很大差异。最大的区别是正常的 API 身份验证应该只用于您的站点,而不是用于外部站点从您的 API 获取用户数据。使用 OAUTH2,用户可以授予网站某些权限,并使用令牌,这些外部网站可以在您的网站上执行某些操作。
  4. 如果你想让其他站点从你的站点获取帐户信息,你应该实现 Passport,如果没有,那么使用 Passport 没有太大的优势。
  5. 例如 Sign in with Google 或 Facebook、Twitter 或 GitHub,甚至 Whosebug 都有 OAUTH2 实现。例如,服务可以为用户创建新的 Facebook 帖子、请求去年的所有 Twitter 帖子或在 Github.
  6. 中创建新问题