django - 为什么在 Django 的 AllowAny 视图中,我使用 Firefox 得到 401 Unauthorized 但不使用 Edge 或 Postman?
问题描述
我正在使用 knox LoginView 来登录我的后端。这是视图的代码:
class Login(LoginView):
permission_classes = (AllowAny,)
def post(self, request, format=None):
serializer = AuthTokenSerializer(data=request.data)
serializer.is_valid(raise_exception=True)
user = serializer.validated_data['user']
login(request, user)
return super(Login, self).post(request, format=None)
当我执行我的前端(使用 Angular 开发)并尝试使用 Microsoft Edge 登录时,一切正常。我得到令牌并将其保存在本地。如果我使用 Postman 执行 POST,结果相同。但是,如果我尝试使用 Firefox 做同样的事情,我会收到 401 Unauthorized 这个 JSON:
{"detail":"Invalid token."}
如果它是 AllowAny 视图,为什么它会要求令牌?为什么它在 Edge 和 Postman 中有效,但在 Firefox 中无效?
更多数据:
这是 settings.py 中的认证类:
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'knox.auth.TokenAuthentication',
),
}
编辑:实际上,它可以使用 Firefox 开发者版。
解决方案
我解决了清理 cookie 的问题。
推荐阅读
- babeljs - 如何在生产构建中使用 Babel 删除 Web API 性能时间线调用
- ghost-blog - 运行“幽灵启动”时出错
- html - XSLT 通用解决方案,用于从 XML 中获取分层 html 表
- scala - scala中的理解半并行调用
- javascript - 使用 puppeteer 打印 PDF 时,如何获取打印元素的页面?
- python - Python package cannot find one of its modules after installation
- python - 逻辑索引python
- c# - 为什么 TextInfo.ToTitleCase 在字母全部为大写的字符串上无法正常工作?
- visual-c++ - 应用程序无法正确启动 (0xc000007b)。WAMP 服务器错误
- c# - 在不同的列上使用 LINQ 连接三个表并在最后打印总和