Laravel 护照 VS JWT
Posted
技术标签:
【中文标题】Laravel 护照 VS JWT【英文标题】:Laravel Passport VS JWT 【发布时间】:2018-01-13 21:50:29 【问题描述】:我对认识到 Laravel Passport
和 tymondesigns/jwt-auth
包之间的差异感到有点困惑。它们实际上是否通过令牌服务于 API 身份验证的相同目的?
只要 Laravel Passport 是在 5.3+ 中引入的,那么在最新版本中是否应该使用 Passport 而不是 tymondesigns/jwt-auth
包?
【问题讨论】:
【参考方案1】:“tymondesigns/jwt-auth”是JWT protocol 的 php Laravel 实现。另一方面,Passport 默认也使用 JWT 加上一个巨大的额外功能,一个完整的 Oauth2 实现。关于功能,正如我所说,它们都使用 JWT,因此您可以使用任何您喜欢的方式通过令牌进行身份验证。他们都完成了自己的工作,您将拥有一个安全的 API 令牌实现。
如果您想要一个轻量级的 API 令牌实现或 Oauth2 服务器的附加功能以允许更多和其他应用程序与您的应用程序通信,那么区别就来了。 most common cases 之一是一些随机应用程序如何向 Google 或 Facebook 询问您的用户信息。如果您实施 Oauth2 服务器,您的应用将允许任何其他具有适当令牌的应用向您的应用请求数据。
"[...] Laravel 使用 Laravel Passport 使 API 身份验证变得轻而易举,它在几分钟内为您的 Laravel 应用程序提供了完整的 OAuth2 服务器实现。Passport 构建在由以下人员维护的 League OAuth2 服务器之上亚历克斯·比尔比。”来自https://laravel.com/docs/master/passport
更多细节,我在Laravel Passport, JWT, Oauth2, and Auth0做了解释。
【讨论】:
如果我构建 SPA,没有第三方应用程序,我需要所有这些 OAuth 还是什么?无法理解使用什么,或者简单的带有 cookie 的 ajax 可以吗?我用反应制作管理仪表板。谢谢! Laravel/Passport 究竟如何比 tymondesigns/jwt-auth 更安全? @teMkaa 首先,我从来没有按照您想要的方式构建网页。虽然我了解问题和所需的技能。考虑到这一点...我会采用 Ajax 路线,因为我假设您已经使用默认的 Laravel Auth 实现了 Auth。使用这种方法,您将以最直接的方式获得 IMO。这取决于您想要扩展应用程序的等级。使用 Passport,您将拥有一个非常快速的扩展选项和几乎相同的验证过程。 JWT 不是一个选项,因为您已经拥有其他类型的身份验证。 @TexasTom 经过一段时间的思考后,我现在相信他们提供了非常高水平的安全性。他们都使用 JWT(一个是 JWT)。它们由社区维护。他们都依赖于你的安全。我将通过适当的更改来编辑答案。感谢您的详细问题:)【参考方案2】:2021 年 12 月。 Laravel Passport 不支持 PHP 7.4。 “psr/log”需要 PHP 8。如果是 PHP 7.4,请使用 Laravel Passport 以外的其他解决方案。
【讨论】:
以上是关于Laravel 护照 VS JWT的主要内容,如果未能解决你的问题,请参考以下文章