python social app(django) - 正确保存/检索用户

时间:2014-04-19 15:28:54

标签: django web-applications django-models django-socialauth python-social-auth

我正在为我的django项目尝试使用python social auth,而我在理解最简单的方法时遇到了一些麻烦 - 最简单的方法是创建/保存/检索用户一旦登录(例如通过谷歌)。

我注意到登录时,比方说,gmail - 在社交auth / Users表中创建了一个条目。然而; Auth / Users表一次只有一个条目(登录的人)。

现在我的社交认证管道就像这样

SOCIAL_AUTH_PIPELINE = (
    'social.pipeline.social_auth.social_details',
    'social.pipeline.social_auth.social_uid',
    'social.pipeline.social_auth.auth_allowed',
    'social.pipeline.social_auth.social_user',
    'social.pipeline.user.get_username',
    'social.pipeline.mail.mail_validation',
    'social.pipeline.user.create_user',
    'social.pipeline.social_auth.associate_user',
    'social.pipeline.social_auth.load_extra_data',
    'social.pipeline.user.user_details',
    'path.to.my.own',
)

因此,您可以看到我在最后有自己的管道处理程序,我可以使用它来提取更多信息。

我想我只是感到困惑,因为我没有在网上看到很多关于从DB存储和检索社交登录用户的最佳方法/最佳实践的例子?我应该从管道中提取社交认证用户的姓名,电子邮件等,并创建我自己的模型,或者这已经以某种方式提供了?我想只是为了清楚地重新解释这个问题:django的python social auth是否包含我们可以使用的用户社交认证表的模型?

1 个答案:

答案 0 :(得分:0)

我认为当您点击网站中的login按钮/链接时,您对python-social-auth的工作原理感到困惑。如果有用户登录,则社交帐户将与该用户关联,但如果没有人登录,则将创建新的用户实例(除非您的站点中已使用社交帐户)。

Python-social-auth与django-auth集成并且还支持自定义用户模型,它不提供用户模型只是用于跟踪社交帐户关联的表集。