首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >更改身份验证过程

更改身份验证过程
EN

Stack Overflow用户
提问于 2019-11-12 01:19:43
回答 1查看 19关注 0票数 0

我正在创建一个项目,为了首先构建它,我使用了https://cookiecutter-django.readthedocs.io/en/latest/的千篇一律的工具。

这个模板对我很有用,但现在我正在尝试为我的项目构建一个API,我在身份验证过程中遇到了一些问题。

一切正常,除了视图通过头中发送的令牌进行身份验证的过程。我所说的观点如下:

代码语言:javascript
运行
复制
class HelloView(APIView):
    permission_classes = (IsAuthenticated,)

    def get(self, request):
        content = {'message': 'Hello, World!'}
        return Response(content)

然后,我只需向发送令牌的相应URL发出http请求,如下所示:

代码语言:javascript
运行
复制
http http://127.0.0.1:8000/api/hello/ 'Authorization: Token 8b59a60cd91c29f4e2a7be54fbd6d32c7bd57377'

然后,我得到的响应是:

代码语言:javascript
运行
复制
{
"detail": "Authentication credentials were not provided."
}

然后,如果我使用浏览器输入URL,它将显示相同的内容,除非我以前登录过Django admin。出于这个原因,我认为基本上发生的是身份验证过程中的一些配置问题。我已将以下变量添加到我的设置中:

代码语言:javascript
运行
复制
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [
    'rest_framework.authentication.BasicAuthentication',
    'rest_framework.authentication.SessionAuthentication',
],
'DEFAULT_PERMISSION_CLASSES': [
    'rest_framework.permissions.IsAuthenticated',
]
}

但是我没有对cookiecutter模板身份验证做任何更改,所以正如我所说的,我认为这可能是问题所在,尽管我不知道如何解决它。

我的最后一个问题是,您知道如何在给定权限类的情况下更改身份验证的完成方式吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-12 17:38:49

您希望用户使用令牌进行身份验证。因此,您需要在设置中设置令牌身份验证:

代码语言:javascript
运行
复制
  "DEFAULT_AUTHENTICATION_CLASSES": (
        "rest_framework.authentication.TokenAuthentication",
        "rest_framework.authentication.SessionAuthentication",
        "rest_framework.authentication.BasicAuthentication",
    ),

或者,如果只想让一个视图使用令牌身份验证,而不是所有视图都默认使用令牌身份验证,那么可以在视图中使用authentication_classes变量。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58805922

复制
相关文章

相似问题

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