【问题标题】:How can I override/extend the "pipeline" flow used in django-social-auth?如何覆盖/扩展 django-social-auth 中使用的“管道”流?
【发布时间】:2012-01-14 21:20:56
【问题描述】:
this thread 对此进行了讨论,但似乎尚未记录。
我最终会尝试创建以下 Facebook Connect 注册流程:
用户连接到 Facebook(这样 django-social-auth 获得了访问令牌,但尚未在 Django 中创建用户)
用户被带到我将编写的视图,该视图将具有访问令牌,以便我可以提供注册表并包含来自 Facebook 的数据(例如,“这是您的 Facebook 个人资料图片,您可以选择上传在我们的网站上使用新的”)
用户单击链接创建帐户,然后才创建 Django 用户。
现在我正在尝试逐步对 django-social-auth 源进行逆向工程以找出一种方法来做到这一点,但如果有人可以展示一个示例甚至是对合理方式的高级解释要做到这一点,那就太棒了。
【问题讨论】:
标签:
django
facebook
django-socialauth
django-facebook
【解决方案1】:
Backend init.py
此回复时的第 71 行。
PIPELINE = setting('SOCIAL_AUTH_PIPELINE', (
'social_auth.backends.pipeline.social.social_auth_user',
'social_auth.backends.pipeline.associate.associate_by_email',
'social_auth.backends.pipeline.user.get_username',
'social_auth.backends.pipeline.user.create_user',
'social_auth.backends.pipeline.social.associate_user',
'social_auth.backends.pipeline.social.load_extra_data',
'social_auth.backends.pipeline.user.update_user_details',
))
将 SOCIAL_AUTH_PIPELINE 添加到您的设置文件并编辑这些值应该允许您自定义您的管道。
另外,根据您所写的内容,您可能希望将 SOCIAL_AUTH_CREATE_USERS 设置为 false
编辑:修复链接