0

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

我注意到,当通过 gmail 登录时,会在社交身份验证/用户表中创建一个条目。然而; 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',
)

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

我想我只是感到困惑,因为我在网上看不到很多关于从数据库存储和检索社交登录用户的最佳方式/最佳实践的示例?我应该从管道中提取社交身份验证用户的姓名、电子邮件等并创建自己的模型还是已经以某种方式提供了?我想只是为了清楚起见重新表述这个问题:django 的 python 社交身份验证是否包含我们可以使用的用户社交身份验证表的模型?

4

1 回答 1

0

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

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

于 2014-04-20T17:17:01.313 回答