[英]Laravel Passport vs JWT vs Oauth2 vs Auth0
我目前正在学习如何在 Laravel 中创建 API,我发现自己陷入了这个令人困惑的概念中。 经过几天的研究和实践,我终于可以理解这些概念来制作迷你指南。 我不得不查看许多单独的网页,因此我将尽最大努力解释它们之间的关系。
换句话说:
对于初学者来说,创建自己的与 Laravel 兼容的 Oauth2 实现不仅会很疯狂,而且很有可能,如果您正在阅读本文,是因为您不完全了解 Oauth2 的所有复杂性。 Oauth2 出来了。 我们所指的只是三个包装选项。 Passport 、 tymondesigns/jwt-auth和Auth0 。
在继续之前,让我注意,当我提到“JWT”或“普通 JWT”时,我真正指的是tymondesigns/jwt-auth包。 真正的匹配发生在 Auth0、Passport 和普通 JWT 之间……
与 Passport 和 JWT 相比, Auth0是一把瑞士军刀。 这把刀是一个多合一的解决方案。 它可以自己做很多事情,加上一些你可能永远不需要的额外功能,而不依赖于 Laravel 或其他框架。 为了不延长它太长,我只想说它可以做任何你可以想象的 API 初学者。 此外,您将拥有一个非常好的开箱即用的仪表板,它允许您管理 API 的所有方面。 从第三方身份验证到添加更多可以使用该 API 的应用程序(移动、网络、桌面)。
护照可以比作一把更精致的刀。 它的创造者知道它将切割什么,并专门为这些任务设计它。 换句话说,它是专门为 Laravel 构建的,它可以顺利和完美地工作,而不会受到许多花里胡哨的困扰。 但是,请不要忘记,从长远来看,您可以在其上实现自己的代码。 就像一个漂亮的自定义仪表板来管理您的 API 客户端。
最后,回到刀的比喻,我喜欢将JWT与锋利的刀片进行比较,没有任何花哨的附加功能。 它重量轻、功能强大、安全可靠,并能胜任。 您获得的好处是您不必担心其他软件包添加的所有额外内容。 此外,由于其灵活性,您可以随心所欲地升级这把刀,如果您需要更重的升级,甚至可以切换到另一个包。
这取决于你,如果你想削减所有可能扔给你的东西并留在 API 世界中而不是在 Laravel (Auth0) 中,缩小到 Laravel 和 Oauth2 的第三方身份验证(Passport)的重点,或者有一个通过 API (JWT) 开箱即用的基本安全数据传输。 是的...您还可以使用其中三个将您的应用程序链接到您的移动应用程序。
我个人更喜欢 Passport 因为:
还是说最后一点,可能有人会说Auth0社区小。 它基本上是,但它也有很棒的客户支持人员。
Laravel 和 Oauth2 Docs 对令牌的解释可能有点困难。 这是Passport 的(因此是 Oauth2)不同类型的令牌及其用例的一个很好的解释。 由于我无法弄清楚教程的“路线”部分,因此我不推荐教程部分。
这是一个很好的 Passport 视频教程,它也使用 PostMan Chrome 应用程序进行 API 调用。 对于那些不熟悉这个 API 的人来说,像 PostMan 这样的应用程序会让你的工作比使用“curl”Linux/Mac 命令容易得多。 您可以观看完整系列或仅观看 Passport 部分。 目前我被困在视频 4 上。这是我的Stack Overflow 问题。
资源
许多资源都在文章上面展开,但我在这里也有一些。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.