统一用户验证选 passport / Sanctum / JWTToken 那个一个好捏?

目前项目要改造用户模块,原来的用户登录验证每个段都是每个端的事,现在改造用户模块,想把APP用户登录验证、PC网页的用户登录验证放一起,统一处理,不再每个客户端一套,维护起来麻烦。后期还可能增加小程序,新的项目产品也是基于一套用户,选择用户认证的处理时有些纠结,passport / Sanctum / JWTToken 那个要好点捏
Sanctum 也符合现有项目整合用户验证的需求,网页和APP都能支持
passport 貌似以后扩展增加新产品开发用户中心貌似有很不错,现在使用感觉有些重
有些纠结,各位大佬指点一下,谢谢了

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

Sanctum最简单,挺好用的

2年前 评论
jackven (楼主) 2年前
讨论数量: 32

JWT最快,Passport可能比较符合后期需求,Sanctum没用过

2年前 评论
jackven (楼主) 2年前
mingzaily (作者) 2年前
jackven (楼主) 2年前
mingzaily (作者) 2年前

JWT

2年前 评论
jackven (楼主) 2年前
小李世界 (作者) 2年前

Passport

tymondesigns/jwt-auth 已经停更了

2年前 评论
91it 2年前
pigzzz (作者) 2年前
王小大 2年前
pigzzz (作者) 2年前
jackven (楼主) 2年前
91it 2年前

cookie/session就挺好 自动续期

2年前 评论

必须passport,后期扩展方便,并且现在也支持多表了。

2年前 评论
GDDD

jwt不就是基础版的passport

2年前 评论
jackven (楼主) 2年前
mengdodo

一直passport, jwt看过感觉简单很多

2年前 评论
jackven (楼主) 2年前
mengdodo (作者) 2年前
Luson

jwt简单又实用

2年前 评论

Sanctum最简单,挺好用的

2年前 评论
jackven (楼主) 2年前

楼主最后为啥采用了Sanctum 可以说一下吗

2年前 评论
jackven (楼主) 2年前
redis_object (作者) 2年前

我最近也在调研这方面的解决方案,我们主要是想实现一个 IDaaS,就是一套包含 5A 的系统。

1.Account

2.Authorization

3.Authentication

4.Application

5.Audit

对比了阿里云的 IDaaS 和 Authing 的服务,感觉 Authing 更符合需求,切更容易接入,那么需要考虑的就是成本问题。

开源的方案也有 Ory 的一整套解决方案,但是实现相对复杂,基于 Golang 开发的,最近也在阅读和研究源码。

经过这么一顿调研后发现,其实要实现简单的 SSO 是没啥难度的,Passport 就剩胜任,但是对于应用的管理或是 API Gateway 的统一鉴权就比较麻烦,API Gateway 支持的 JWT 和 OIDC 与 Passport 的 AccessToken 无法完美适配。

其实 Passport 的 AccessToken 也是 JWT 的一种,只是签名加密算法采用的 RSA 等非对称算法,现在总算摸透了为啥那些大佬都说 JWT 适合与为服务的认证。

基于 Passport 实现的 SSO 其实本质上用户信息还是分散的,因为你在系统中需要获取用户信息,关联被授权应用中的用户信息,5A 中的 Account 服务也是为了解决这个问题。光靠这个 Account 服务还无法完美解决账户分散的问题,需要在业务层面设计不同系统或服务中仅通过 ID Token 来关联用户信息,系统或服务不需要存储用户任何信息。

完成了 SSO 之后,还有一个问题就是 SLO (单点登出),当然这个不是每个系统都需要这么个功能。

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!