首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Django Rest Framework API测试,使用令牌身份验证和IsAdmin权限返回403,AssertionError

Django Rest Framework(简称DRF)是一个用于构建Web API的强大框架,它基于Django,并提供了许多用于简化API开发的工具和功能。在DRF中进行API测试时,可以使用令牌身份验证和IsAdmin权限来模拟用户身份和权限验证。

令牌身份验证是一种常用的身份验证方式,它通过在每个请求中包含令牌来验证用户身份。在DRF中,可以使用TokenAuthentication类来实现令牌身份验证。当用户进行API请求时,需要在请求的头部中包含类似于"Authorization: Token <token>"的信息,其中<token>是用户的令牌。如果请求中未包含有效的令牌或者令牌无效,DRF会返回403 Forbidden错误。

IsAdmin权限是DRF中的一种权限类,它用于限制只有管理员用户才能访问特定的API视图。在DRF中,可以使用IsAdminUser类来实现IsAdmin权限。当用户进行API请求时,DRF会检查用户是否为管理员用户,如果不是,则返回403 Forbidden错误。

针对你提到的AssertionError,这是Python中的一个异常类型,通常用于在测试中检查某个条件是否为真。在进行API测试时,可以使用DRF提供的TestCase类和assertEqual等断言方法来进行断言检查,以确保API的返回结果符合预期。

综上所述,针对"Django Rest Framework API测试,使用令牌身份验证和IsAdmin权限返回403,AssertionError"的问题,可以给出以下完善且全面的答案:

在进行Django Rest Framework的API测试时,可以使用令牌身份验证和IsAdmin权限来模拟用户身份和权限验证。令牌身份验证通过在每个请求的头部中包含令牌信息来验证用户身份,可以使用TokenAuthentication类来实现。如果请求中未包含有效的令牌或者令牌无效,DRF会返回403 Forbidden错误。IsAdmin权限用于限制只有管理员用户才能访问特定的API视图,可以使用IsAdminUser类来实现。当用户进行API请求时,DRF会检查用户是否为管理员用户,如果不是,则返回403 Forbidden错误。

在进行API测试时,可以使用DRF提供的TestCase类和assertEqual等断言方法来进行断言检查,以确保API的返回结果符合预期。如果在断言检查中发现结果与预期不符,会抛出AssertionError异常。

相关的腾讯云产品和产品介绍链接如下:

  1. 腾讯云API网关:https://cloud.tencent.com/product/apigateway
  2. 腾讯云身份认证服务CAM:https://cloud.tencent.com/product/cam
  3. 腾讯云云服务器CVM:https://cloud.tencent.com/product/cvm
  4. 腾讯云对象存储COS:https://cloud.tencent.com/product/cos
  5. 腾讯云数据库MySQL:https://cloud.tencent.com/product/cdb_mysql
  6. 腾讯云人工智能AI:https://cloud.tencent.com/product/ai

请注意,以上链接仅为示例,具体的产品选择应根据实际需求和情况进行评估和选择。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

python测试开发django-61.权限认证(permission)

django rest framework权限认证有四种方式: BasicAuthentication 此身份验证方案使用HTTP基本身份验证,根据用户的用户名密码进行签名。...基本身份验证通常仅适用于测试 TokenAuthentication 此身份验证方案使用基于令牌的简单HTTP身份验证方案。令牌认证适用于客户端 - 服务器设置,例如本机桌面移动客户端。...permission权限认证 权限检查通常使用request.userrequest.auth属性中的身份验证信息来确定是否应允许传入请求。...当权限检查失败时,将根据以下规则返回HTTP 403 Forbidden或HTTP 401 Unauthorized: 如果收到的请求身份验证通过,但是权限验证失败,则返回HTTP 403 Forbidden...; 如果收到的请求身份验证失败,且最高优先级验证类不能使用WWW-Authenticate请求头,则返回HTTP 403 Forbidden; 如果收到的请求身份验证失败,且最高优先级验证类可以使用WWW-Authenticate

2K40

8.寻光集后台管理系统-用户管理(增删改查)

身份验证 身份验证是将传入请求与一组识别凭证相关联的机制,例如请求携带的用户名密码,签名令牌等。然后权限之类的限制策略才可以使用这些凭证来确定是否应该允许请求。...身份验证始终在视图的最开始运行,在权限限制检查发生之前,在任何其他代码被允许继续之前。 REST框架提供多种开箱即用的身份验证方案,后面项目实战时,我们再讨论。...权限检查通常会使用request.userrequest.auth属性中的身份验证信息来确定是否应允许传入请求。 权限用于授予或拒绝不同类别的用户访问 API 的不同部分。...当权限检查失败时,将根据以下规则返回403 Forbidden”或“401 Unauthorized”响应: 请求已成功验证,但权限被拒绝。— 将返回 HTTP 403 Forbidden 响应。...请求未成功通过身份验证,最高优先级的身份验证类不使用WWW-Authenticate标头。— 将返回 HTTP 403 Forbidden 响应。

1.8K30
  • python测试开发django-60.token登录(TokenAuthentication)

    环境准备: python 3.6 django 2.1.2 TokenAuthentication django rest framework权限认证有四种方式: BasicAuthentication...此身份验证方案使用HTTP基本身份验证,根据用户的用户名密码进行签名。...基本身份验证通常仅适用于测试 TokenAuthentication 此身份验证方案使用基于令牌的简单HTTP身份验证方案。 令牌认证适用于客户端 - 服务器设置,例如本机桌面移动客户端。...SessionAuthentication 此身份验证方案使用Django的默认会话后端进行身份验证。 会话身份验证适用于与您的网站在同一会话上下文中运行的AJAX客户端。...()), ] 测试登录获取token 接着测试登录返回token的接口,使用post请求,请求类型Content-Type: application/json ?

    3K30

    Django REST Framework-视图的装饰器(一)

    Django REST Framework中的视图装饰器提供了一种方便的方式来自定义视图的行为。视图装饰器是一个函数,它接受一个视图函数作为参数,并返回修改后的视图函数。...在本文中,我们将介绍Django REST Framework中最常用的视图装饰器,包括@api_view,@permission_classes,@authentication_classes@throttle_classes...@api_view@api_view是Django REST Framework中最常用的视图装饰器之一。它将普通的函数视图转换为可以处理各种HTTP方法的API视图。...最后,我们使用Response对象返回响应数据。@permission_classes@permission_classes是Django REST Framework中的另一个常用的视图装饰器。...它允许您指定在请求被处理之前必须满足的权限要求。如果请求不满足这些要求,则将返回HTTP 403 Forbidden错误。

    47510

    Django REST Framework-权限

    Django REST Framework(DRF)为开发人员提供了一种灵活的权限系统,该系统可让您轻松地在API中管理保护敏感数据。...权限系统基于“允许访问的用户”“访问用户的操作”进行配置,使您可以完全控制API的访问级别。...如果用户不是超级用户,则DRF将返回一个HTTP 403 Forbidden响应。该权限非常适合用于管理API,例如用户管理或其他管理任务。...下面是一个简单的示例,演示如何使用DRF中的权限系统:from rest_framework.permissions import IsAuthenticatedfrom rest_framework.response...如果未通过身份验证,DRF将返回一个HTTP 401 Unauthorized响应。在get方法中,我们还演示了如何使用request对象获取已通过身份验证的用户凭据。

    64020

    【愚公系列】2022年04月 Python教学课程 72-DRF框架之认证权限

    文章目录 一、认证 1.全局认证 2.视图认证 3.装饰器认证 二、权限 1.全局权限 2.视图权限 3.装饰器权限 4.组合权限 一、认证 身份验证是将传入请求与一组标识凭据(如请求来自的用户或签名时使用令牌...然后,权限限制策略可以使用这些凭据来确定是否应允许请求。 REST 框架提供了几种开箱即用的身份验证方案,还允许您实现自定义方案。...身份验证始终在视图的开头、权限限制检查发生之前以及允许任何其他代码继续之前运行。 该属性通常设置为包的类的实例。...request.usercontrib.authUser 该属性用于任何其他身份验证信息,例如,它可用于表示用于对请求进行签名的身份验证令牌。...request.userrequest.auth 权限用于授予或拒绝不同类别的用户对 API 不同部分的访问权限。 最简单的权限样式是允许任何经过身份验证的用户访问,并拒绝任何未经身份验证的用户访问。

    89630

    说说web应用程序中的用户认证

    那么问题来了,使用 Django Rest Framework 框架实现后端 REST API 时,如何做好用户认证呢?...在 Django Rest Framework 中,认证功能是可插拨的,非常方便。REST框架提供了现成的身份验证方案,如下。并且还允许您实现自定义方案。...1、BasicAuthentication 此身份验证方案使用 HTTP 基本身份验证,该身份针对用户的用户名密码进行了签名。基本身份验证通常仅适用于测试。...2、TokenAuthentication 此身份验证方案使用简单的基于令牌的 HTTP 身份验证方案。令牌认证适用于客户端-服务器设置,例如台式机移动客户端。...其实不然,这里我推荐使用: JSON Web Token,也就是 django-rest-framework-jwt 安全加密功夫做得比较足,而且工作原理也清楚明了,使用也简单。

    2.2K20

    Django REST Framework-基于JSON Web Token的身份验证

    Django REST Framework中,基于JSON Web Token (JWT) 的身份验证是一种常见的身份验证方法。...返回的字典包含两个令牌:refreshaccess。refresh令牌用于在用户的访问令牌过期时刷新令牌。access令牌用于每个API请求的身份验证。...我们还定义了validate_token()函数,它接受一个JWT令牌,并使用RefreshToken.blacklist()方法来验证黑名单令牌。如果JWT令牌有效,则返回True。...如果JWT令牌无效,则返回False。基于JWT的身份验证一旦您已经生成JWT令牌,就可以在Django REST Framework使用它来进行身份验证了。...JWT的配置选项在Django REST Framework中,您可以使用SIMPLE_JWT设置来配置JWT选项。

    2K30

    DRF系列总结二:脚手架搭建

    一、安装DRF   首先,我们创建一个Django基础工程demo,并创建一个测试app,得到了Django框架的初始化代码,代码目录结构如下: # django-admin startproject...基础策略、视图侧配置、后台分页、异常处理等几个部分,接下来我们开始自定义配置: 配置接口认证权限 REST_FRAMEWORK = {...', ], ... } 这里的接口权限策略,去掉了匿名用户的读取权限,仅允许经过身份验证的注册用户访问接口; 这里的接口认证策略,去掉了HTTP基本认证的方式(接口提供账号密码),仅保留了使用...User 实例 - `request.auth` 是 None 未经身份验证的请求会返回`403`配置全局过滤器 REST_FRAMEWORK = {...""" 自定义分页格式,返回当前页码总页数 http://api.example.org/accounts/?

    3.7K60

    django rest framework 自定义返回方式

    大家在用Django Rest Framework的时候会发现默认继承后,增删改查的返回信息都是一段data,这是因为我实际是状态码信息你在调用api的时候是看不到的,仅仅如此么?...并不是这样,在我前端调用后端的时候,实际上相关的codemsg是能看得到的,但是我们在普通的调用api他只是单单的返回data信息,这个是不够我们满足需求的,毕竟我们不仅仅需要用前端需调用,下面我们来自定义...Response返回信息 Django(2.0) Django Rest Framework Python3.6 1、自定义Response,继承rest framework的Response #这个方法...,下一节将讲解自定义异常 补充知识:django rest framework 自定义异常返回 上一节给大家介绍了自定义Response返回信息,但那个只用于正确的返回success,但是当我们用到了权限...以上这篇django rest framework 自定义返回方式就是小编分享给大家的全部内容了,希望能给大家一个参考。

    1.5K30

    教你 10 分钟构建一套 RESTful API 服务( Django篇 )

     Restless 依赖插件的增强使用场景的 但是,有些小伙伴希望我能写一下 Django 实现 RESTful API 的实现过程 因此本篇将介绍 Django 搭建 RESTful API 的流程... ,使用的技术栈是:Django + djangorestframework + django-rest-swagger  2....文件 针对 djangorestframework,配置 App 及异常、权限、可视化、解析方式等内容 # api/api/settings.py INSTALLED_APPS = [     'django.contrib.admin...',     'restfulapi',     'rest_framework_swagger', ] # drf 配置,包含:异常、权限 REST_FRAMEWORK = {     'DEFAULT_PERMISSION_CLASSES... rest_framework_swagger 中的 get_swagger_view() 函数,创建一个可视化的 API 界面 # api/api/urls.py from rest_framework_swagger.views

    6K10

    构建强大的API-Django中的REST框架探究与实践

    例如,我们可以编写基于APITestCase的测试类来测试API的各种端点功能。另外,为了方便使用理解API,我们还可以使用Django REST框架提供的文档工具来自动生成API文档。...安全性与权限控制在开发API时,确保API的安全性权限控制是至关重要的。Django REST框架提供了丰富的安全性功能权限控制机制,可以帮助我们保护API免受各种安全威胁。...例如,我们可以使用内置的身份验证权限类来限制用户对资源的访问:from rest_framework.authentication import SessionAuthenticationfrom rest_framework.permissions...API的安全性,比如使用django-rest-framework-simplejwt来实现基于JWT的身份验证。...Django REST框架提供了丰富的文档测试工具,可以帮助我们编写管理API的文档测试

    39420

    Django(75)django-rest-framework-simplejwt「建议收藏」

    前言 由于之前我们一直使用django-rest-framework-jwt 这个库,但是作者在17年的时候就已经不再维护了(有部分bug没有解决),所以我们也就不用了,目前我们使用django-rest-framework-simplejwt...介绍 Simple JWT为Django REST Framework提供了JSON Web TOKEN身份验证。...并且借鉴了DRF中的另一个JSON web token库django-rest-framework-jwt 安装 1.使用以下pip命令安装 pip install djangorestframework-simplejwt...'rest_framework_simplejwt', ... ] 验证 最后我们使用接口工具验证simple jwt是否能正常工作,访问http://127.0.0.1:8000/api/token.../ 可以看到返回了accessrefresh两个token access:默认5分钟的有效期 refresh:当access过期了,就需要传入refresh字段,重新刷新token,访问http

    1.8K40

    DRF进阶之DRF视图常用功能

    JWT 与普通Token一样,都是访问资源的令牌,区别是普通Token服务端验证token信息要查询数据库验证,JWT验证token信息不用查询数据库,只需要在服务端使用密钥效验。...与普通Token一样,都是访问资源的令牌,区别是普通Token服务端验证token信息要查询数据库验证,JWT验证token信息不用查询数据库,只需要在服务端使用密钥效验。.../myapp/api/user5/ token自定义返回信息 需要重写返回信息函数 在app项目下的utils目录中新增重写信息: myapp/utils/token_auth.py from rest_framework.authtoken.views...扩展来增强支持 参考文档: https://www.django-rest-framework.org/api-guide/filtering/ 安装: django-filter pip3...参考文档: https://www.django-rest-framework.org/api-guide/pagination/#pagination 全局分页配置 修改全局settings配置: django_drf

    4.6K10

    Django REST Framework教程(一分钟入门)

    引用官方一句话:Django REST框架是用于构建Web API的功能强大且灵活的工具包。   那为什么要使用Rest Framework?   ...Django REST Framework可以在Django的基础上迅速实现API,并且自身还带有WEB的测试页面,可以方便的测试自己的API。   ...这个可以看我之前写的DJango博客就可以知道,每次返回时都是使用render 或者redirect来返回的,需要带上HTML页面参数              2....2.全局设置,分页API使用权限问题,指定管理员使用: # 设置权限策略: REST_FRAMEWORK = { 'DEFAULT_PERMISSION_CLASSES': [...', namespace='rest_framework')) ] 8.到此所有东西都已经写完,然后我们运行runserver命令:  接口返回403,提示没有权限,我们登陆一下试试:  返回了两个

    1.9K30
    领券