我可以使用Facebook作为未注册用户登录吗? (Django,all-auth)

时间:2017-08-29 15:19:24

标签: django facebook django-rest-framework django-allauth python-social-auth

我正在构建我的Django RESTful Framework来检索和发布Mobile的数据。我正在使用djang-rest-auth(这只是具有RESTful功能的all-auth;更多信息:http://django-rest-auth.readthedocs.io/en/latest/)。

问题:全知识中的社交认证对我来说并不清楚。你能完成这个用例吗?

使用案例:未注册用户

  1. 用户在手机上登录用户
  2. Mobile从Facebook SDK获取facebook令牌
  3. 移动设备将令牌发送到我们的DRF后端服务器网址,即' / rest-auth / facebook'
  4. 会发生什么?你能完成这个用例吗? < - 这是我的问题
  5. 我的猜测:

    • all-auth自动为facebook用户令牌创建新用户并返回新令牌?
    • 然后,它将创建的用户保存到settings.AUTH_USER_MODEL?还是...?
    • 我找到了社交帐户'在Django管理员。我们是否在这个帐户中保存用户..?

1 个答案:

答案 0 :(得分:1)

是的,你是对的。收到Facebook令牌后,Django将创建SocialAccount实例,其中包括后端名称(在您的情况下为facebook)和用户的facebook id。此实例将AUTH_USER_MODELForeignKey相关联,因此当下次用户尝试登录时,Django将按指定的SocialAccount找到facebook id并返回相关的AUTH_USER_MODEL实例