oauth-2.0 Laravel Passport与 JWT 、Oauth2与Auth0的比较

cbeh67ev  于 2022-10-31  发布在  其他
关注(0)|答案(1)|浏览(355)

对Laravel中的API身份验证类型感到困惑?

我目前正在学习如何在Laravel中创建API,我发现自己陷入了这个令人困惑的概念中。经过几天的研究和实践,我终于理解了足够多的这些概念,可以制作一个迷你指南。我不得不查看很多单独的网页,所以我会尽我最大的努力来解释它们之间的关系。

l3zydbqr

l3zydbqr1#

这些概念是什么?

  • Passport是一个实现Oauth2和JWT的官方Laravel包。
  • Auth0是一个身份验证和授权服务。它是API身份验证的“一体化”解决方案。它默认实现JWT,并且可以实现Oauth2和many other protocols
  • OAuth2是一个授权框架或协议,它使 * 应用程序(您将要构建的应用程序)* 能够向用户帐户(如Facebook、GitHub等)给予有限的访问权限......想象一下,您的应用程序增长到足以提供“在此处使用应用程序名称登录”或向其他第三方应用程序提供对您的用户帐户的有限访问权限。使用Oauth2,您可以在many other things中实现这一点。
  • JWT是一种令牌格式。换句话说,它是如何安排数据来创建令牌的。另一种令牌格式是SWT。

换句话说就是:

  • Passport实现了-〉Oauth2和JWT。
  • Auth 0可以实现-〉Oauth2或许多其他协议,如LDAP、OPEN ID等。
  • Oauth2可以实现-〉JWT或其他令牌格式,如SWT...

您应该使用什么?

对于一个初学者来说,创建自己的Oauth2实现与Laravel兼容是疯狂的,而且如果您正在阅读本文,可能是因为您不知道如何实现所有的Oauth2复杂性。**Oauth2 out。**我们所拥有的重新定义是三个包选项:Passporttymondesigns/jwt-authAuth0

  • 在继续之前,让我注意一下,当我提到“JWT”或“普通JWT”时,我实际上指的是tymondesigns/jwt-auth包。* 真正匹配的是Auth 0、Passport和普通JWT...

与Passport和JWT相比,Auth 0是一把瑞士军刀。这把刀是一个一体化的解决方案。它可以自己做很多事情,加上一些额外的东西,如果不依赖于Laravel或其他框架,你可能永远不需要。为了不扩展太长时间,让我说,它可以做任何你作为API初学者可能想象到的事情。此外,你会有一个非常好的 Jmeter 板,它可以让你管理API的各个方面。从第三方身份验证到添加更多的应用程序(移动的、Web、桌面),这些应用程序都可以使用API。
护照就像是一把更精致的刀,它的设计者知道它能切割什么,并专门为这些任务设计。换句话说,它是专门为拉拉拉威尔设计的,可以流畅而完美地工作,没有太多的花里胡哨。别忘了,从长远来看,你可以在它上面实现你自己的代码。就像一个漂亮的自定义 Jmeter 板来管理你的API客户端。
最后,回到刀的比喻,我喜欢将JWT与没有任何花哨附加功能的锋利刀片进行比较。它重量轻,功能强大,安全可靠,并能完成它的工作。您将获得不必担心其他软件包添加的所有附加功能的好处。此外,由于它的灵活性,您可以根据需要升级这把刀,甚至可以切换到另一个软件包,如果您需要更重的升级。

结论

这取决于您,如果您想削减可能会向您抛出的一切,并更多地停留在API世界而不是Laravel (Auth 0),请缩小范围,专注于Laravel和Oauth2的第三方身份验证 (Passport),或通过API(JWT)进行开箱即用的基本安全数据传输。是的...您还可以使用这三种工具将您的应用链接到您的移动的应用。
就我个人而言,我过去更喜欢Passport,因为:

  • 我喜欢使用官方的Laravel软件包。
  • 除了添加到我的项目中的许多额外的路由和表之外,它的性能不会受到影响。
  • 如果我从最基本的APIauth开始,并希望扩展,这将容易得多。
  • 使用Laravel套件的舒适感。

仍然在谈论最后一点,有些人可能会说Auth 0社区很小。它基本上是,但它也有令人敬畏的客户端支持人员。
编辑:(现在我更喜欢Tymon JWT)

Passport和Oauth2的教育课程

Laravel和Oauth2 Docs对令牌的解释可能有点困难。这里有一个Good Explanation ofPassport's(therefore Oauth2) Different Types of Tokens and Their Use Cases。因为我不能弄清楚教程中的“路径”部分,所以我不推荐教程部分。
这是一个Good Passport Video Tutorial,它也使用PostMan Chrome应用程序进行API调用。对于那些不熟悉API的人来说,像PostMan这样的应用程序会让你的工作比使用“curl”Linux/Mac命令容易得多。你可以观看完整的系列,也可以只观看Passport部分。目前我还停留在视频4上。下面是我的Stack Overflow问题。

资源

很多资源都在上面的文章中,但我也有一些在这里。

相关问题