我尝试将Django REST框架与django-rest-auth
和django-allauth
集成。
现在我可以使用API休息从Facebook创建用户。
我创建了这个超级用户:
Name: Barack
Email: barack@mysite.com
Password: hello
好的,我尝试使用我的新REST api通过Facebook创建用户。 我使用了Facebook用户 user.name = barack.obama
注册后我打开了我的数据库:
我看到这个表:
在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",
)
使用我的管理面板我可以看到:
我看到社交帐户:这是一种不同类型的用户(基本用户的子类型)。是否可以在此用户类型上指定其他字段?
我需要有两种不同的用户类型:
社交帐户(在此类型上我需要添加其他一些文件:field_X_1 field_X_2 ....)
Standard_Accounts(在此类型上我需要添加其他字段:field_Y_1,field_Y_2 ...)
社交帐户和标准帐户都是BasicUser的子类型,因此我需要将其视为我的应用程序的用户。
SocialAccounts 只能通过API Rest(django-rest-auth + Facebook)进行身份验证,而 StaandardAccounts 只能使用管理面板进行身份验证(用户名/密码:经典方式) )
有可能吗?