大家好!

在使用 FastAPI 实现基于 JWT 的认证时,我通过在代码中直接编写整个逻辑,碰到 AuthX 库(https://authx.yezz.me)作为一种简化此过程的可能替代方案。初步看来,它似乎抽象出了 token 生成、验证、依赖注入和整体 token 管理的复杂性。在自定义实现中,其简化这一过程可能会提高生产力并减少安全错误的风险,然而在看到它内部使用的是何种 JWT 处理方式一事上,我想要更好地了解,这是基于 python-jose 或 PyJWT,尤其考虑到 python-jose 的维护活动相对较少。

我还有一些更广泛的问题:

1. 是否有其他的库,除了 AuthX,更加广泛 adoption 或是被官方推荐用于 FastAPI 中的 JWT 认证?(除了 AuthX 之外是否有其他比 AuthX 更加广泛使用的库,且被官方推荐?

2. 如果是一个刚刚入门 FastAPI 的开发者,将会选择使用一种已经非常成熟的库例如 PyJWT 来实现 JWT “手工”管理,这样可以更好地理解内部的逻辑?,或是不使用抽象层,如 AuthX,自行建立认证流程?

3. 是否采用一种抽象层如 AuthX 是一个在应用中好的实践?(使用抽象层是否是一个好的实践?

我主要的目标是理解 AuthX 是一个比较稳定的产品且是可以用于生产环境的还是会更倾向于使用 FastAPI 官方推荐的方式使用 PyJWT,自己建立的认证流程要更加显式和可控。

非常感谢你们的任何见解或建议!