我目前正在学习如何在Laravel中创建一个API,我发现自己陷入了这个令人困惑的概念。经过几天的研究和实践,我终于可以理解这个概念,制作一个迷你指南。我不得不查看很多单独的网页,所以我会尽力解释它们之间的关系。
答案 0 :(得分:51)
换句话说:
您应该使用什么?
初学者创建与Laravel兼容的Oauth2实现会很疯狂。 Oauth2出局。我们所有的重新考虑是三种包装选择。 Passport,tymondesigns/jwt-auth和Auth0。
JWT(tymondesigns / jwt-auth包)可以创建一个电子邮件和密码验证。但是,如果您使用Passport作为基本电子邮件和密码验证,您不必担心“Oauth2实施”会影响您的应用程序的性能(这不是很多)。当所有那些令人生畏的迁移表和路由都是由Passport生成时,差异就会出现,但通过一些练习,您将会理解它们。 Auth0 似乎快速设置,但在某些用例中,它可能过于夸张,除了感觉不到使用社区Laravel包的安全性。
真正的比赛是在Auth0和Passport之间进行的。与护照相比,Auth0是瑞士军刀。您可以直接使用非常好的仪表板,这样您就可以管理API的所有方面。从第三方身份验证添加可以使用该API的更多应用程序(移动,Web,桌面)。护照可以与更精致的刀相比。它专为Laravel而构建,从长远来看,您可以实现自己的漂亮和自定义仪表板来管理您的API客户端。
<强>结论强>
我认为真正的选择必须在Passport和Auth0之间。如果您想在Laravel中构建API,或者您将更多地进入API世界而不是Laravel,这取决于您。就我而言,我更喜欢Passport而不是Auth0 最后是JWT。原因是:
还在谈论最后一点,有些人可能会说Auth0社区很小。它基本上是。但它也有很棒的客户支持人员。
Passport和Oauth2教程
Laravel和Oauth2 Docs对令牌的解释可能有点困难。这是一个Good Explanation of Passport'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 question。
<强>资源强>
许多资源都在文章的上面展开,但我也有一些。