python - 如何完成 django-userena 和 Social Auth 的集成

标签 python django django-socialauth

我认为 django userena 是一次又一次重新发明轮子的用户注册信息的不错选择。

我想以某种方式将 userena 与 Social-auth 集成。但无论我做什么,我都无法整合它们。

那么如何集成这两个认证系统。

任何想法或帮助将不胜感激......

亲切的问候

最佳答案

我不太明白你的想法。但是,请考虑到这一点:

1 Userena提供了与用户连接的抽象模型。使用源代码中的示例:

from django.db import models
from django.utils.translation import ugettext_lazy as _
from django.contrib.auth.models import User

from userena.models import UserenaLanguageBaseProfile

import datetime

class Profile(UserenaLanguageBaseProfile):
    """ Default profile """
    GENDER_CHOICES = (
        (1, _('Male')),
        (2, _('Female')),)

    user = models.OneToOneField(User,
                                unique=True,
                                verbose_name=_('user'),
                                related_name='profile') 

    gender = models.PositiveSmallIntegerField(_('gender'),
                                              choices=GENDER_CHOICES,
                                              blank=True,
                                              null=True)
    website = models.URLField(_('website'), blank=True, verify_exists=True)
    location =  models.CharField(_('location'), max_length=255, blank=True)
    birth_date = models.DateField(_('birth date'), blank=True, null=True)
    about_me = models.TextField(_('about me'), blank=True)

如您所见,userena 提供了一个抽象类,其中将用户作为一对一的字段。

另一方面,django-social-auth 知道如何使用不同的社交服务进行身份验证并填充数据库中的表 auth_user。 django-social-auth 更改的其他表是 django-session 和social_auth_usersocialauth。这意味着 django Social auth 知道如何进行身份验证、处理 session 并聚合额外数据(例如 token )。

如果您只想使用 userena 向用户添加额外数据,则可以在 simpler form 中完成。

我可以说使用 userena 如果:

  • 您需要照片(图片)
  • 您需要为每个用户添加语言
  • 您需要使用 https
  • 您需要通过电子邮件确认帐户(这有点与使用社交身份验证相冲突,不是吗?)
  • 需要对个人资料的用户权限进行一些基本管理。

更新:如果您想同时进行身份验证,请查看此 nice project .

关于python - 如何完成 django-userena 和 Social Auth 的集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12467383/

相关文章:

django - 基于列表显示中的自定义可调用项在 Django Admin 中进行排序

Django OAuth2错误: invalid_client and client_id=None when client_id has been provided

python - 如何在 Django 中分离登录重定向 URL

python - 通常会在 pyparsing 中压平返回的列表

python - SQLAlchemy 选择存在限制

python - 使用SciPy接口(interface)和Cython直接调用BLAS/LAPACK

python - 使用 current_app.send_task 时 Celery 任务路由不起作用

javascript - 在 Cesium 查看器/ map 上覆盖一个工具栏

Django-Socialauth 或 django-social-auth,哪个最好?

python - 我无法制作准确的数据透视表