Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 联合Django auth&;Facebook认证_Python_Django_Facebook - Fatal编程技术网

Python 联合Django auth&;Facebook认证

Python 联合Django auth&;Facebook认证,python,django,facebook,Python,Django,Facebook,对于我正在制作的Django网站,我有以下身份验证系统: -人们可以通过Facebook登录 -人们可以通过Django Auth登录 我现在已经到了可以通过Facebook登录的地步。当Facebook返回时,我会保存用户名和电子邮件等。但现在的问题是:如何将这些Facebook帐户与Django auth系统合并 例如,“普通”用户将通过以下方式登录: user = auth.authenticate ( user , password ) auth.login ( request , us

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

我现在已经到了可以通过Facebook登录的地步。当Facebook返回时,我会保存用户名和电子邮件等。但现在的问题是:如何将这些Facebook帐户与Django auth系统合并

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

user = auth.authenticate ( user , password )
auth.login ( request , user )
但当人们通过Facebook登录时,我该怎么做呢?Facebook当然不会传递密码

希望你能理解我的问题

你必须

  • 在某些型号中存储FB标识和密钥
  • 使用不可用的passford创建相关django用户
  • 创建一个身份验证后端,使用该模型并通过社交凭据进行身份验证

  • 顺便说一句,django social auth软件包和其他许多软件包解决了这个问题,为什么不使用它呢?

    Ah,这很有意义:为这些用户创建一个唯一的密码。谢谢你的提示。关于social auth软件包:我知道这一点,但我目前正在学习Python和Django的诀窍,如果我自己尝试一下,我会比仅仅使用软件包更好地理解这些东西。不是唯一的,而是不可用的,例如auth.models.unusable\u PASSWORD。由于pwd更改和验证管理是在视图端进行的,因此您的后端可能允许通过fb登录的用户更改其密码,而无需请求旧值(检查
    user.has\u usable\u password()
    ),这正是我做这件事的原因。谢谢你给我指明了正确的方向。我要读更多关于这个的书!