如何将令牌身份验证添加到标头中



我试图创建一个使用django测试客户端的客户端,并通过令牌身份验证发出get请求。但我有401错误,所以出了问题。。当然,这也适用于post。我一直在寻找不同的解决方案,但都不起作用。这是代码的一部分:

from django.test import Client
class MyClient:
def __init__(self):
self.client = Client()
self.token = None
def get(self, url):
if self.token is not None:
new_url = base + url
result = self.client.get(new_url, headers={'Content-Type': 'application/json','Authorization': 'Token {}'.format(self.token)})
else:
result = self.client.get(url)
return result
def login(self, username, password):
payload = {
"username": username,
"password": password
}
response = self.post_without_auth('/api/auth/token_auth/',payload)
if response.status_code is 200:
self.token = response.json()['token']
return response
def post_without_auth(self, url, payload):
response = self.client.post(url, payload)
return response
def current_user(self):
response = self.get('/api/current_user/')
return response

调用将设置令牌值的方法post

def get(self, url):
self.post(username, password)
if self.token is not None:
new_url = base + url
result = self.client.get(new_url, headers={'Content-Type': 'application/json','Authorization': 'Token {}'.format(self.token)})
else:
result = self.client.get(url)
return result
def login(self, username, password):
payload = {
"username": username,
"password": password
}
response = self.post_without_auth('/api/auth/token_auth/',payload)
if response.status_code is 200:
self.token = response.json()['token']
return response

最新更新