在Flask中实现社交登录

tau*_*dep 5 python flask flask-login flask-security

希望通过LinkedIn,Google,Facebook在我们的应用程序中实现社会认证.我目前正在使用flask-security来帮助管理我们应用程序中的用户/角色.我正在寻找有关Flask/Flask-Security和社会认证的最佳实践的一些指导.

我已经看过flask-social插件,但我也想选择本地基于表单的登录.

到目前为止,我正计划为flask-security编写一个新的登录视图实现,可以确定我是否正在使用社交网站(通过在用户点击"使用XYZ登录"时传递查询参数)进行登录.社交身份验证发生后,我计划运行常规的flask-security登录以设置所有适当的会话令牌以及用户和角色,以便@login_required装饰器继续工作.

我没有真正看到任何挂钩来覆盖flask-security中的登录视图功能,所以我计划要么将现有的实现复制到我自己的应用程序中,要么2)调用flask_security_views :: login.

但是,我想知道是否有一些已经在某个地方实施过,或者是一个更好的开始.看起来我真的要削减很多现有的代码.

谢谢

toh*_*ter 1

马克希尔德雷斯是正确的。

Flask-social 允许您通过表单(用户名/密码)或通过社交登录。因此,您可以将它与flask-security、flask-login或您想要的任何基于密码的身份验证结合使用。我已经将flask-social 与flask-security 结合使用,并且可以确认它们可以很好地协同工作。

Flask-social 将每个User对象链接到零个或多个附加社交帐户,这些帐户存储在单独的表/数据存储中。因此,它不会取代现有的密码基础设施……它只是增强了模型User并添加了额外的社交方法,还允许用户通过社交帐户登录。