首先我是一个新手,对于Django/Python
不太熟悉。
我正在尝试创建一个登录网站,允许用户注册一个账户
并通过电子邮件
或直接通过FB
或Google
(Oauth
)登录
。
当我点击发送到电子邮件
的验证链接时,出现了错误。
错误信息
:
ValueError at /activate/Mjk/4p1-dcc5f7ed2e7c847fe362/
You have multiple authentication backends configured and therefore must
provide the `backend` argument or set the `backend` attribute on the user.
Request Method: GET
Request URL: http://127.0.0.1:8000/activate/Mjk/4p1-dcc5f7ed2e7c847fe362/
Django Version: 1.11.3
Exception Type: ValueError
Exception Value:
You have multiple authentication backends configured and therefore must provide the `backend` argument or set the `backend` attribute on the user.
Exception Location: /usr/local/lib/python2.7/dist-packages/django/contrib/auth/__init__.py in login, line 149
Python Executable: /usr/bin/python
Python Version: 2.7.12
Python Path:
['/home/gaby/django projects/simple-signup-master/profile-model',
'/usr/local/lib/python2.7/dist-packages/virtualenv-15.1.0-py2.7.egg',
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-x86_64-linux-gnu',
'/usr/lib/python2.7/lib-tk',
'/usr/lib/python2.7/lib-old',
'/usr/lib/python2.7/lib-dynload',
'/home/gaby/.local/lib/python2.7/site-packages',
'/usr/local/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages/PILcompat',
'/usr/lib/python2.7/dist-packages/gtk-2.0',
'/usr/lib/python2.7/dist-packages/ubuntu-sso-client']
Server time: Wed, 30 Aug 2017 12:34:31 +0000
我的网站/设置
AUTHENTICATION_BACKENDS = (
'social_core.backends.facebook.FacebookOAuth2',
'social_core.backends.google.GoogleOAuth2',
'django.contrib.auth.backends.ModelBackend',
)
当我收到错误时被调用的函数
def activate(request, uidb64, token):
try:
uid = force_text(urlsafe_base64_decode(uidb64))
user = User.objects.get(pk=uid)
except (TypeError, ValueError, OverflowError, User.DoesNotExist):
user = None
if user is not None and account_activation_token.check_token(user,
token):
user.is_active = True
user.profile.email_confirmed = True
user.save()
login(request, user)
return redirect('home')
else:
return render(request, 'account_activation_invalid.html')
我在通过fb
和google
添加oath
登录后开始收到error
。如果我从AUTHENTICATION_BACKENDS
移除'social_core.backends.facebook.FacebookOAuth2
'和'social_core.backends.google.GoogleOAuth2
',email confirmation
将再次起作用。
我在网上搜索并在这里也找到了唯一的解决方案,但它没有解决我的问题。here