Laravel Sanctum与Passport的比较

51

这两者有什么不同?对于一个简单的VueJS应用来说,哪一个更好? 我已经多次阅读了它们的文档,但还是感到困惑。 非常感谢。

1个回答

73
Passport可以在几分钟内为您的Laravel应用程序提供完整的OAuth2服务器实现。因此,有必要对OAuth2有一个简要的了解。
Sanctum是一个简单的包,用于向您的用户发放API令牌,而不需要OAuth的复杂性。 Sanctum使用Laravel内置的基于cookie的会话身份验证服务。
在小型应用程序中使用Sanctum,它简单易用。

为什么只在小型应用程序中使用 Sanctum? - louis_coetzee
1
@louis_coetzee 因为小应用程序(例如SPAs)通常只需要简单的基于令牌的身份验证方法... passport为您提供了完整的oauth“光谱”...这使您能够实现多个身份验证方法。 - chuysbz
假设有两个应用程序:应用程序1处理客户端中已经存在的人力资源开发(HRD),而我正在开发应用程序2,该应用程序处理客户端中每个员工的绩效管理系统。我的应用程序(应用程序2)将提供API,可以被应用程序1使用,即应用程序1可以将员工记录发布到我的应用程序(post / put请求),并从我的应用程序检索绩效数据(get请求)。 Sanctum适合这种类型的应用程序吗?我已经阅读了Passport(OAuth 2)和Sanctum,但仍然不确定我会选择哪一个。 - Lex Soft
1
正如原问题所附的@LexSoft警告,它基于每个开发人员的意见。按照您的说法,我会选择sanctum,因为您的API只有一个客户端(应用程序1)...但是假设您的客户/公司将来想要移动应用程序并希望拥有多个身份验证选项(社交,电子邮件,电话)...那么我会选择passport...再次强调,这是我的意见...我建议在测试项目中尝试两种方法,以获得更好的理解。 - chuysbz
@CodeChuck 可能会有多个应用程序使用我的 API。所以我阅读的推荐方式是使用授权码授予 PKCE,这在 Passport 中可用。而 Sanctum 的方法类似于个人访问令牌,这也是 Passport 提供的,当我们不想经过典型的授权代码重定向流程时可以使用。后一种方法提供了一定程度的便利,客户端可能更喜欢它,但它可能会存在安全漏洞。嗯,我需要考虑几件事情。谢谢回复。 - Lex Soft
@CodeChuck 有一件事,我同意,我需要尝试两种方式:使用PKCE的Passport授权代码授权和在测试项目中使用Sanctum。 实际上,我已经为Sanctum项目准备了一个文件夹,但因时间限制而暂停了。 - Lex Soft

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接