【问题标题】:user system with social authentication in djangodjango中具有社交身份验证的用户系统
【发布时间】:2013-12-12 07:15:53
【问题描述】:

我已经阅读了许多不同的 django 应用程序,用于将社交身份验证集成到 django 项目中。但是,我在理解这种集成的工作原理时遇到了一些麻烦

它是否扩展了默认的 USER 模型?在应用程序中哪里可以找到这些信息?

我基本上需要一个具有组的用户系统(出于许可目的)。用户将能够使用通用注册过程或 facebook 进行注册。我可以通过任何类型的应用程序实现这一目标吗?

提前致谢。

【问题讨论】:

    标签: python django facebook authentication


    【解决方案1】:

    有一个名为 django-allauth 的应用程序。如果您阅读他们的官方文档,则很容易理解。按照他们的指示,您安装核心应用程序,以及您需要的任何其他身份验证(如 facebook、google 使用的 oauth)。然后,你必须去 facebook,获取开发者密钥,并将其添加到你的 django 管理员。

    基本上,当有人尝试使用 facebook 登录时,登录过程会将密钥发送到 facebook,并检查用户是否存在。如果是这样,则身份验证应用程序会在后端创建用户,就像正常的登录过程一样。您可以从 facebook 获取 javascript 来制作登录窗口。

    【讨论】:

    • 感谢您的回复。当您编写“正常登录过程”时,您的意思是所有用户都将存储在同一个地方?通过facebook注册的和通过普通注册注册的?我可以设置组和权限吗?我能否通过 ID 引用每个用户,该 ID 在注册过程中是唯一的?
    • 如果您查看他们的源代码:github.com/pennersr/django-allauth/blob/master/allauth/account/…,似乎无论使用哪种方法登录用户的过程都是相同的。只要您有用户名和密码,并且在后端处于活动状态,您就可以登录。对我的观点持保留态度,但是,您似乎应该能够像管理“普通用户”一样管理它们。根本不需要太多时间;你可以试一试看看。
    • 那么,如果用户使用 facebook 注册,他必须创建用户名和密码?
    • 没有没有。 Facebook 提供用户名(或电子邮件)和密码。如果用户不在系统中,身份验证应用程序会创建它。当用户下次尝试登录时,应用程序会尝试匹配身份验证凭据。因此,如果用户在场,他就会通过身份验证。
    猜你喜欢
    • 1970-01-01
    • 2014-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-03
    • 2020-08-21
    • 1970-01-01
    • 2018-03-25
    相关资源
    最近更新 更多