Django DRF 两种接口安全机制及其配置

接口安全机制,用于设置和管理用户调用接口时的权限问题。此处介绍最常用的两种接口安全机制及其配置。


1 使用之前 先生成接口文档 便于测试

1.1 安装依赖

pip install coreapi

2.2 设置接口文档

项目配置目录下的urls.py中添加以下代码:

from rest_framework.documentation import include_docs_urlspath('docs/', include_docs_urls(title="测试项目接口文档"))  #路径和title可自定义

项目配置目录下的全局配置文件settings.py中添加以下代码:

REST_FRAMEWORK = {...'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.coreapi.AutoSchema',
}

2 DRF安全机制之Token配置

项目配置目录下的全局配置文件settings.py中添加以下代码:

INSTALLED_APPS = [...'rest_framework','rest_framework.authtoken',
]REST_FRAMEWORK = {...,# 配置DRF Token'DEFAULT_AUTHENTICATION_CLASSES': ('rest_framework.authentication.TokenAuthentication',  # Token 认证)
}

路由配置:在项目配置目录下的urls.py中添加以下代码:

...
from rest_framework.authtoken.views import obtain_auth_tokenurlpatterns = [...,path('docs/', include_docs_urls(title="测试项目接口文档")),# path('api-token-auth/', obtain_auth_token),  # Auth Token
]

3 DRF安全机制之JWT配置

前后端分离项目通常会使用JWT

1.1 安装依赖

pip install djangorestframework-jwt

2.2 设置接口文档

项目配置目录下的全局配置文件settings.py中添加以下代码:

INSTALLED_APPS = [...'rest_framework','rest_framework.authtoken',
]REST_FRAMEWORK = {...,# 配置DRF Token'DEFAULT_AUTHENTICATION_CLASSES': (#    'rest_framework.authentication.TokenAuthentication',  # Token 认证'rest_framework_jwt.authentication.JSONWebTokenAuthentication',  # JWT认证),'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.coreapi.AutoSchema',# 配置JWT'JWT_EXPIRATION_DELTA': datetime.timedelta(days=3),  # 过期时间 'JWT_AUTH_HEADER_PREFIX': 'JWT',  # 设置Token头为 JWT xxxx'JWT_ALLOW_REFRESH': False,# 'JWT_RESPONSE_PAYLOAD_HANDLER': 'app8.jwt_utils.jwt_response_payload_handler'  # 自定义认证消息
}

项目配置目录下的urls.py中添加以下代码:

from rest_framework_jwt.views import obtain_jwt_tokenurlpatterns = [...,path('docs/', include_docs_urls(title="测试项目接口文档")),# path('api-token-auth/', obtain_auth_token),  # Auth Tokenpath('api-jwt-token-auth/', obtain_jwt_token),  # JWT Token
]

4 使用方式

拿到Token或者JWT之后,使用方式:
Token/JWT格式: Token/JWT + 两个空格 + 具体的Token
在Postman请求头headers中添加Authorization及上述Token值。

Django DRF 两种接口安全机制及其配置相关推荐

  1. 老猿学5G随笔:5G网元功能体NF以及NF之间的两种接口--服务化接口和参考点

    一.5G功能体之间的接口类型 5G不同功能体之间提供了两种接口: 服务化接口:Service-basedinterface,这个是类似微服务化架构的服务注册和服务发现来实现的功能体对外暴露的接口,这种 ...

  2. Spring中IoC两种接口和两种依赖注入方式的比较

    spring是一个开源框架,是为了解决企业应用程序开发的复杂性而创建的,为J2EE应用程序开发提供集成的框架.简单来说,spring是一个轻量级的控制反转IOC和面向切面AOP的容器框架.spring ...

  3. 理解java中的两种接口

    在java 中我们常常提高接口一词.在java 中有两中接口. 第一种接口:就是指系统对外提供的所有服务,在对象中表现为public类型的方法的声明.也就是我们常常在一个类中写的public的方法了. ...

  4. Kafka Consumer的两种接口(高阶低阶)

    Kafka Consumer接口 http://www.cnblogs.com/fxjwind/p/3794255.html 对于kafka的consumer接口,提供两种版本, high-level ...

  5. 台式计算机硬盘主要有哪两种接口,台式机硬盘和笔记本硬盘都有哪些区别?

    如果对电脑硬盘有一定了解的用户,肯定知道硬盘有分为SATA硬盘和IDE硬盘,或者分为机械硬盘和固态硬盘,但如果你想对台式机硬盘和笔记本硬盘之间的区别有些了解的话,那就可以详细看下本篇文章给你带来的汇总 ...

  6. dp主机_HDMI和DP是什么?一文看懂两种接口的区别

    现在市面上主流的显示器和显卡,都会有好几个连接线接口,例如DP接口.HDMI接口,甚至HDMI接口也会分成两种.今天我们就来聊聊DP和HDMI的相关知识吧. HDMI 目前最主流的接口,全称是高清多媒 ...

  7. Pycharm社区版运行Django的三种方法(Pycharm添加配置参数快捷启动Django、Pycharm社区版Django项目创建)

    目录 Pycharm社区版运行Django的三种方法 Django安装和环境变量的配置(MacOS) 创建Project 启动Django Webserver 方法一:终端启动 方法二:pycharm ...

  8. django分页(两种办法)

    以下是分页常用的方法 numbers=list(range(50)) page=Paginator(numbers,10) print(page.num_pages)#获取总共分了多少页 print( ...

  9. 台式计算机硬盘主要有哪两种接口,常见的接口主要有哪三种

    目前,无线上网卡主要应用在笔记本上和PDA(掌上电脑)上,还有部分应用在台式机上,所以,其接口也有多种规格.常见的接口主要有PCMCIA接口.USB接口.CF接口等几类. PCMCIA接口 这种类型接 ...

最新文章

  1. R语言ggplot2可视化使图形的背景在不同区域有不同的颜色实战
  2. (转) GPG入门教程
  3. nessuss中文使用手册
  4. 计算器百分号如何用代码实现_如何用 100 行 Python 代码实现新闻爬虫?这样可算成功?...
  5. Object.assign()解释整理
  6. SNF开发平台WinForm-平板拍照及扫描二维码功能
  7. 2010.11.13网规论文关注点
  8. bochs运行xp_bochs安卓最新版下载
  9. SPSS之多因素方差分析
  10. STC15单片机-低功耗设计
  11. 最简单的php爬虫库 QueryList
  12. 实践致知第7享:Windows如何设置文件的默认打开方式?
  13. 前端——知乎APP“我的收藏”勾选优化想法
  14. Python简介及入门
  15. 推荐适合胖mm大码 连衣裙 显瘦女装穿搭
  16. Entrust 将不再签发超过13个月有效期的SSL证书
  17. 文件批量重命名(Excel+REN)
  18. tkinter界面设计
  19. 第二章:RocketMQ集群监控平台 rocketmq-console 搭建
  20. SQL基本语句学习(上)

热门文章

  1. 计算机word实线边框在哪,4.22 Word 2016 形状轮廓(边框)设置(实线、渐变线)-Word2016入门进阶教程-亮术网...
  2. linux 命令:su 详解
  3. 携程梁建章:我的鼠标+水泥为什么成功
  4. Linux学习——文件权限及文件查找
  5. 局域网中的两台主机共享一台显示器
  6. 折腾一下,Linux Mint 19 下工作
  7. 程序员最好掌握的两个思维模式
  8. 洛谷P1781宇宙总统
  9. 【Python爬虫】从零开始爬取Sci-Hub上的论文(串行爬取)
  10. 无线射频专题《无线局域网排错,第二层重传问题3@多径现象》