【发布时间】: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