【发布时间】:2021-11-28 09:02:32
【问题描述】:
当我使用Postman(在服务器运行时)测试它时,我的 API 可以工作。例如:
当我使用 Django 测试客户端进行测试时,我可以登录,但不能验证请求。例如:
headers = {'Authorization': 'Token ' + token}
response = client.get('/api/v1/users/auth/user/', **headers)
响应对象包含:
'_container': [b'{"detail":"Authentication credentials were not provided."}']
由于某种原因,令牌最终出现在 request 中,而不是标题中:
'request': {'Authorization': 'Token 665c371b1b894abba102cdbae8b35b613321791d',
我错过了什么?
【问题讨论】:
-
get方法中的第二个参数是传递payload。要将令牌添加到标头使用参数extra={ "HTTP_AUTHORIZATION": f"Token {access_token}" } -
@JaskaranSingh 仍然遇到与
response = client.get('/api/v1/users/auth/user/', extra={ "HTTP_AUTHORIZATION": f"Token {token}" })相同的错误
标签: django django-rest-framework authorization django-testing