gpt4 book ai didi

用于检查 header token 的 Django 自定义中间件。使用有效请求 header token 进行测试仍然失败

转载 作者:行者123 更新时间:2023-12-02 04:07:32 36 4
gpt4 key购买 nike

我正在检查自定义中间件中有效 token 的请求 header 。

class CustomTokenAuthentication(object):

def process_request(self, request):

access_token = request.META.get('HTTP_TOKEN', '')
if AccessToken.objects.filter(token=access_token).exists():
return None
else:
# return None
res = HttpResponse("Invalid token", status=401)
res["WWW-Authenticate"] = "Invalid Token"
return res

似乎工作正常,但我坚持通过设置带有有效 token 值的 header HTTP_TOKEN 并获得 200 响应来编写测试。

我的示例测试代码

def test_invalid_token_present(self):
resp = self.client.get(reverse('productlist'), **{'HTTP_TOKEN':'8742627sdfsdfsf4e3423dsd23'})
self.assertEqual(resp.status_code,200)

似乎总是失败。

最佳答案

Django 将 CUSTOM-HEADER 重命名为 HTTP_CUSTOM_HEADER。当您发送 HTTP_TOKEN 时,它将在 request.META 字典中重命名为 HTTP_HTTP_TOKEN。检查您获得的 header 的一个简单方法是打印 request.META 并检查控制台,或者在检查之前插入 pdb 断点并检查 request.META 字典 - link to relevant Django doc 。所以尝试一下:

    resp = self.client.get(reverse('productlist'),
**{'TOKEN':'8742627sdfsdfsf4e3423dsd23'})

我建议您限制行的长度,这样人们就不必水平滚动来阅读您的代码。 PEP-8 规定 80 个字符的限制。

关于用于检查 header token 的 Django 自定义中间件。使用有效请求 header token 进行测试仍然失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38668216/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com