【问题标题】:request.user not being populated by my django auth backendrequest.user 没有被我的 django auth 后端填充
【发布时间】:2014-07-07 18:50:07
【问题描述】:

我编写了一个授权后端类,它根据django docs 实现了authenticate 方法和get_user 方法。我添加了

AUTHENTICATION_BACKENDS = ('src.lib.auth_backend.MyBackend',)

到我的 settings.py 文件。通过打印语句,我可以看到我的代码正在运行,并且它正在返回我在 settings.py 中使用AUTH_USER_MODEL 定义的类的用户对象。

当我在 django-rest-framework has_object_permsion 函数中获得请求对象时,request.user 始终设置为 AnonymousUser

我错过了一步吗? 我已经尝试过安装和不安装django.contrib.auth.middleware.AuthenticationMiddleware 并得到相同的结果。

这个失败发生在下面的单元测试中

def test_get_user(self):
    client = APIClient() # rest_framework.test.APIClient
    client.login(username='user1',password='user1Password')
    res = client.get('/websvc/users/' + str(user.user_id) + '/') # request.user will be AnonymousUser
    self.assertEqual(res.status_code, 200) # it will be 403, which is appropriate for AnonymousUser

【问题讨论】:

    标签: python django django-rest-framework django-authentication django-users


    【解决方案1】:

    有几件事可能是错误的。

    您是否在运行测试之前创建了用户?

    什么返回client.login

    向我们展示整个测试,告诉你出了什么问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-21
      • 2017-12-08
      • 1970-01-01
      相关资源
      最近更新 更多