首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rest_framework_simplejwt发布到APIView

rest_framework_simplejwt发布到APIView
EN

Stack Overflow用户
提问于 2020-04-09 21:12:36
回答 1查看 381关注 0票数 0

我有这样的设置:

代码语言:javascript
复制
REST_FRAMEWORK = {
    'DEFAULT_PERMISSION_CLASSES': [
        'rest_framework.permissions.IsAuthenticated',
    ],
    'DEFAULT_AUTHENTICATION_CLASSES': [
        'rest_framework_simplejwt.authentication.JWTAuthentication',
    ]
}

这一观点:

代码语言:javascript
复制
class Config(APIView):
    def get(self, request, *args, **kwargs):
        if 'config' in request.GET.dict():
            if os.path.isfile(settings.CONFIG):
                yaml = read_config(settings.CONFIG)
                return Response(yaml)
            else:
                return Response({
                    "success": False,
                    "error": "config file not found!"})
        else:
            return Response({"success": False})

    def post(self, request, *args, **kwargs):
        if 'data' in request.data:
            print(request.data['data'])

        return Response({"success": False})

使用axios,我管理api调用,例如:

代码语言:javascript
复制
axios.post('api/config/?config', { data: obj, headers: { Authorization: 'Bearer ' + rootState.auth.jwtToken } })

现在的问题是,我不能发布数据。我收到一个未经授权的 (401)错误,在响应消息中写着:{"detail":"Authentication credentials were not provided."}

你能告诉我,我在这里缺少的是什么吗?我如何解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-09 22:01:30

AUTH_HEADER_TYPES in settings.py是什么?持票人或JWT。如果是JWT,则必须更改header auth类型。

2-您提供身份验证并获得令牌了吗?

解决方案:

Axios请求假定第二个参数是数据,第三个参数是config。您在第二个参数中发送了标头。您可以在配置中设置标题。

代码语言:javascript
复制
axios.post(url, data, config)

将axios.post更改为:

代码语言:javascript
复制
axios.post('api/config/?config', { data: obj }, {
headers: { Authorization: 'Bearer ' + rootState.auth.jwtToken }})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61130277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档