Laravel auth vs Passport vs Sanctum

Posted

技术标签:

【中文标题】Laravel auth vs Passport vs Sanctum【英文标题】: 【发布时间】:2020-07-25 11:55:54 【问题描述】:

Laravel authPassportSanctum 之间有什么区别以及它们何时使用?

【问题讨论】:

【参考方案1】:

Passport provides 在几分钟内为您的Laravel application 提供完整的OAuth2 服务器实现。因此有必要对OAuth2有一个简单的了解。

Sanctum 这是一个简单的软件包,可以向您的用户发出API tokens,而没有OAuth 的复杂性。 Sanctum 使用Laravel's 内置cookie 基于session 认证服务。

在小型应用程序中使用 Sanctum。简单易行

Auth (Authentication) 是识别用户凭据的过程。在 Web 应用程序中,身份验证由会话管理,会话采用电子邮件或用户名和密码等输入参数进行用户识别。如果这些参数匹配,则称用户已通过身份验证。

参考:

Auth Passport vs Sanctum

希望对你有帮助..

谢谢。

【讨论】:

我要补充一点,Sanctum只能在API和SPA在同一个域名下使用。虽然 Passport 可以在不同的域名之间使用,但是 SPA 的用户需要被重定向到 Laravel 才能登录,然后才能被重定向到 SPA。如果我错了,请纠正我。【参考方案2】:

对我来说,Sanctum 是一个轻量级的身份验证系统,用于在与 API 相同的域下的 SPA 中。而 Passport (OAuth2) 允许从 SPA 登录到另一个域,并且用户被重定向到后端进行登录,这复杂Token 和 JWT 似乎更老,更困难

【讨论】:

以上是关于Laravel auth vs Passport vs Sanctum的主要内容,如果未能解决你的问题,请参考以下文章

Laravel Passport:auth:api 的行为类似于 auth:web

Laravel 55 - Passport & Vue - auth/login/logout

方法 Illuminate\Auth\RequestGuard::logout 不存在 Laravel Passport

Laravel Passport "auth:api" 中间件充当 "web, auth" 中间件

[PHP] 浅谈 Laravel auth:api 不同驱动 token 和 passport 的区别

具有正常设计的 Passport Laravel Rest API Auth