当前位置: 首页 > news >正文

Django rest_framework 信号机制生成并使用token

1、在setting.py 中增加设置

'DEFAULT_AUTHENTICATION_CLASSES':['rest_framework.authentication.BasicAuthentication',#基本的用户名密码验证'rest_framework.authentication.SessionAuthentication','rest_framework.authentication.TokenAuthentication',# token 认证],
INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','course.apps.CourseConfig','rest_framework','rest_framework.authtoken',#DRF 自带token认证
]

2、生成token 表

python manage.py makemigration
python manage.py migrate

3、写一个信号函数 使得创建用户时 自动创建token .在views.py中增加

from django.db.models.signals import post_save
from django.dispatch import receiver
#from django.contrib.auth.models import User
from django.conf import settings
from rest_framework.authtoken.models import Token#@receiver(post_save,sender = User)  Django 的信号机制
@receiver(post_save,sender = settings.AUTH_USER_MODEL)
def generate_token(sender,instance=None,created=False,**kwargs):if created:Token.objects.create(user=instance)

4、创建获取token用的路由

from django.contrib import admin
from django.urls import path,include
from rest_framework.authtoken import views
urlpatterns = [path('api-token-auth', views.obtain_auth_token),#获取token的接口path('admin/', admin.site.urls),path('api-auth/', include('rest_framework.urls')),path('course/',include('course.urls')),
]

5、使用方法  使用post 方法访问api-token-auth 方法  

{“username":"xxxx","password":"xxxxx"
}

6、获取到token .就可以使用token认证访问接口了

相关文章:

  • 如何使用Java从PDF文件中提取图像(教程)
  • SpringBoot学生操行评分系统源码设计开发
  • 【金仓数据库征文】金仓数据库:创新驱动,引领数据库行业新未来
  • 私服与外挂:刑事法律风险的深度剖析
  • k8s监控方案实践(一):部署Prometheus与Node Exporter
  • Kubernetes外部访问服务全攻略:生产级方案详解
  • 拥塞控制 流量控制 区别
  • EasyRTC嵌入式音视频通话SDK驱动智能硬件音视频应用新发展
  • 雷军「去执行化」与小米汽车更名:一场关乎安全与战略的双向奔赴|创客匠人热点评述
  • 用react实现一个简单的三页应用
  • 键盘固件刷写详解:Bootloader
  • 【目标检测标签转换工具】YOLO 格式与 Pascal VOC XML 格式的互转详解(含完整代码)
  • SSM框架(Spring + Spring MVC + MyBatis)整合配置的详细步骤
  • TLS 1.3:一把打不开旧锁的新钥匙,为何难成主流?
  • flutter利用 injectable和injectable_generator 自动get_it注册
  • 《供应链网络攻击的风险与防范》
  • auto_ptr和unique_ptr
  • Angular 面试常见问题
  • LabVIEW 2019 与 NI VISA 20.0 安装及报错处理
  • 观测云:安全、可信赖的监控观测云服务
  • 85后清华博士黄佐财任湖北咸宁市咸安区委副书记、代区长
  • 俄乌互相空袭、莫斯科机场关闭,外交部:当务之急是避免局势紧张升级
  • 央视315晚会曝光“保水虾仁”后,湛江4家涉事企业被罚超800万元
  • 建筑瞭望|融入自然的新泳池,治愈了中央公园的历史旧伤
  • 预告:央行等部门将发声,介绍“一揽子金融政策支持稳市场稳预期”有关情况
  • 新华社:赵心童世锦赛夺冠,中国书写斯诺克运动新历史