【问题标题】:Combine Django auth & Facebook auth [duplicate]结合 Django 身份验证和 Facebook 身份验证 [重复]
【发布时间】:2013-11-03 08:48:11
【问题描述】:

对于我正在制作的 Django 网站,我有以下身份验证系统: - 人们可以通过 Facebook 登录 - 人们可以通过 Django Auth 登录

我现在可以通过 Facebook 登录了。当 Facebook 返回时,我会保存用户的姓名和电子邮件等。但现在的问题是:如何将这些 Facebook 帐户与 Django 身份验证系统合并?

例如,“普通”用户将通过以下方式登录:

user = auth.authenticate ( user , password )
auth.login ( request , user )

但是当人们通过 Facebook 登录时,我该怎么做呢?当然不会传递密码?

希望你能理解我的问题 =)!

【问题讨论】:

    标签: python django facebook


    【解决方案1】:

    你必须

    1. 在某些模型中存储 FB 身份和密钥。
    2. 使用不可用的密码创建相关的 django 用户
    3. 创建一个身份验证后端,与该模型对比并通过社交凭据进行身份验证

    顺便说一句,有一个 django-social-auth 包和许多其他包可以解决这个任务,为什么不使用它?

    【讨论】:

    • 啊,这很有道理:为这些用户创建一个唯一的密码。谢谢你的提示。关于 social-auth 包:我知道这一点,但我目前正在学习 Python 和 Django 的技巧,如果我自己尝试而不是仅仅使用包,我会更好地理解东西。
    • 不是唯一的,但 无法使用,例如 auth.models.UNUSABLE_PASSWORD。由于 pwd 更改和验证管理是在视图端进行的,因此您的后端可能允许通过 fb 登录的用户更改密码而不要求旧值(检查 user.has_usable_password()
    • 这正是我做这些事情的原因。感谢您为我指明正确的方向。我会阅读更多关于这方面的内容!
    猜你喜欢
    • 2018-02-24
    • 2015-08-10
    • 2012-03-17
    • 1970-01-01
    • 1970-01-01
    • 2017-11-27
    • 2015-02-02
    • 2019-05-22
    • 2011-08-17
    相关资源
    最近更新 更多