当我使用
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',
我错过了什么?
最后我找到了有效的方法:
response = client.get('/api/v1/users/auth/user/',
**{ "HTTP_AUTHORIZATION": f"Token {token}" })
Copilot 建议我使用 HTTP_AUTHORIZATION=auth_token 并且它有效。
auth_token 已包含“令牌”
response = self.client.post(path= SALES_API + "/restaurants/", data=body, content_type="application/json", HTTP_AUTHORIZATION=auth_token)