【吐槽】关于flask-oauthlib、oauthlib和authlib的一些关系

authlib
flask-oauthlib

#1

我想尝试弄一个 oauth 服务资源认证server。根据 flask-oauthlib 找到了 authlib

我一直以为 flask-oauthlib 底层使用的是 authlib,后来才发现并不是,而是oauthlib!oauthlib和authlib是两个不同项目!我的天哪!

现在不明白的是为什么 flask-oauthlib 作者要在README写这句:

You SHOULD use https://github.com/lepture/authlib instead .

是要废弃flask-oauthlib还是觉得oauthlib不好用然后自己写了一个authlib库并推荐?

另外吐槽下flask-oauthlib版本的依赖,单独执行pipenv install flask-oauthlib可能无法lock。如果使用:

pipenv install flask-oauthlib==0.9.5 requests-oauthlib==1.0.0

这样组合使用就可以pipenv lock了。

现在不知道oauthlib和authlib哪家比较好?想搭一个资源认证server。


#2

关于为什么要写一个authlib库来替代flask-oauthlib, 可以参考 lepture老师的博客 https://lepture.com/en/2019/authlib-bsd-license


#3

Authlib 更好,但是它的 license 设置有一点不同,只对开源项目免费。

我觉得 lepture 这样做有些不妥,可以在原项目 README 加一个寻找新维护者的提醒,而不是直接存档。


#4

谢谢楼上各位, authlib源码阅读列入计划中


#5

flask-oauthlib(以及requests-oauthlib)顾名思义是基于oauthlib

可能原作者lepture觉得维护flask-oauthlib不爽,于是新启了个项目叫authlib,后者的优点是全面,支持RFC, openid, JWT, JWK, 内置Flask, Django, Starlette, Requests, httpx的集成。

推荐当然是使用活跃中的项目,flask-oauthlib既然被作者废弃,就应该使用authlib