【问题标题】:Anonymous User Error Edit匿名用户错误编辑
【发布时间】:2012-11-17 12:17:32
【问题描述】:

我已经为我的网站安装了 django-facebook-4.0.8。该软件包已成功安装,但会出现不同类型的错误。 请帮忙!

我正在使用 AUTH_PROFILE_MODULE = 'django_facebook.FacebookProfile'。

将用户注册为 AUTH 用户,但未在 django_facebook_facebookprofile 表中注册。 注册后,'AnonymousUser' 对象没有属性'backend'

这是我的回溯:

Environment:

Request Method: POST
Request URL: http://pydev.aviesta.com/facebook/connect/?facebook_login=1

Django Version: 1.4.2
Python Version: 2.6.6
Installed Applications:
['mezzanine.boot',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.redirects',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.sitemaps',
'django.contrib.staticfiles',
'cartridge.shop',
'mezzanine.conf',
'mezzanine.core',
'mezzanine.generic',
'mezzanine.blog',
'mezzanine.forms',
'mezzanine.pages',
'mezzanine.galleries',
'mezzanine.twitter',
'mezzanine.accounts',
'user_attr',
'facebook',
'django_facebook',
'django_extensions',
'filebrowser_safe',
'south',
'grappelli_safe',
'django.contrib.admin',
'django.contrib.comments']
Installed Middleware:
['django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.redirects.middleware.RedirectFallbackMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'cartridge.shop.middleware.ShopMiddleware',
'mezzanine.core.request.CurrentRequestMiddleware',
'mezzanine.core.middleware.TemplateForDeviceMiddleware',
'mezzanine.core.middleware.TemplateForHostMiddleware',
'mezzanine.core.middleware.AdminLoginInterfaceSelectorMiddleware',
'mezzanine.pages.middleware.PageMiddleware']

Traceback:
File "/usr/lib/python2.6/site-packages/django/core/handlers/base.py" in get_response

response = middleware_method(request, callback, callback_args, callback_kwargs) File "/usr/lib/python2.6/site-packages/mezzanine/pages/middleware.py" in process_view
return view_func(request, *view_args, **view_kwargs) File "/usr/lib/python2.6/site-packages/django/views/decorators/csrf.py" in wrapped_view
return view_func(*args, **kwargs) File "/usr/lib/python2.6/site-packages/django_facebook/decorators.py" in _wrapped_view
return view_func(request, *args, **kwargs) File "/usr/lib/python2.6/site-packages/django_facebook/views.py" in connect
response = _connect(request, facebook_login) File "/usr/lib/python2.6/site-packages/django_facebook/views.py" in _connect
action, user = connect_user(request) File "/usr/lib/python2.6/site-packages/django_facebook/connect.py" in connect_user
user = _login_user(request, facebook, auth_user, update=False) File "/usr/lib/python2.6/site-packages/django_facebook/connect.py" in _login_user
login(request, authenticated_user) File "/usr/lib/python2.6/site-packages/django/contrib/auth/__init__.py" in login
request.session[BACKEND_SESSION_KEY] = user.backend File "/usr/lib/python2.6/site-packages/django/utils/functional.py" in inner
return func(self._wrapped, *args)
Exception Type: AttributeError at /facebook/connect/
Exception Value: 'AnonymousUser' object has no attribute 'backend'

【问题讨论】:

    标签: python django facebook authentication django-facebook


    【解决方案1】:

    基本上你在打电话

    self.login(request, user)
    

    无需调用

    authenticate(username=user, password=pwd)
    

    第一

    当你调用 authenticate 时,django 会在用户身上设置 backend 属性,注意要使用哪个后端,更多详细信息请参见此处https://docs.djangoproject.com/en/dev/topics/auth/#django.contrib.auth.authenticate

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-23
      • 1970-01-01
      • 2013-05-14
      • 2011-11-09
      • 1970-01-01
      • 2018-05-20
      • 2022-01-26
      • 1970-01-01
      相关资源
      最近更新 更多