Django Allauth和Facebook的rest-auth(导入领域)

时间:2015-03-10 22:47:22

标签: django facebook rest django-rest-framework django-allauth

我尝试将Django REST框架与django-rest-authdjango-allauth集成。

现在我可以使用API​​休息从Facebook创建用户。

我创建了这个超级用户:

Name: Barack
Email: barack@mysite.com
Password: hello

好的,我尝试使用我的新REST api通过Facebook创建用户。 我使用了Facebook用户 user.name = barack.obama

注册后我打开了我的数据库:

我看到这个表:

enter image description here

在User-auth表中,我有两行:第一行有 用户名= barack ,第二行有 用户名= barack2 < / EM>

但是,为什么我有用户名= barack2关于用Facebook创建的用户?这是哪里的?为什么不使用Facebook用户名(barack.obama)?

是否可以定义从Facebook恢复哪些字段以及如何保存?

是否需要在我的设置中定义某些内容?

现在我有了这个:

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'rest_framework',
    'rest_framework.authtoken',
    'rest_auth',
    'django.contrib.sites',
    'allauth',
    'allauth.account',
    'rest_auth.registration',
    'allauth.socialaccount',
    'allauth.socialaccount.providers.facebook',
    'SocialAuth',
)

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
)

TEMPLATE_CONTEXT_PROCESSORS = (
    "django.contrib.auth.context_processors.auth",
    "django.core.context_processors.debug",
    "django.core.context_processors.i18n",
    "django.core.context_processors.media",
    "django.core.context_processors.static",
    "django.contrib.messages.context_processors.messages",
    "allauth.socialaccount.context_processors.socialaccount",
)

使用我的管理面板我可以看到:

enter image description here

我看到社交帐户:这是一种不同类型的用户(基本用户的子类型)。是否可以在此用户类型上指定其他字段?

我需要有两种不同的用户类型:

  • 社交帐户(在此类型上我需要添加其他一些文件:field_X_1 field_X_2 ....)

  • Standard_Accounts(在此类型上我需要添加其他字段:field_Y_1,field_Y_2 ...)

社交帐户和标准帐户都是BasicUser的子类型,因此我需要将其视为我的应用程序的用户。

SocialAccounts 只能通过API Rest(django-rest-auth + Facebook)进行身份验证,而 StaandardAccounts 只能使用管理面板进行身份验证(用户名/密码:经典方式) )

有可能吗?

0 个答案:

没有答案