django1.8_django-vue-admin

django1.8_django-vue-admin前言由于之前我们一直使用的django-rest-framework-jwt这个库,但是作者在17年的时候就已经不再维护了(有部分bug没有解决),所以我们也就不用了,目前我们使用django-r

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

前言

由于之前我们一直使用的django-rest-framework-jwt 这个库,但是作者在17年的时候就已经不再维护了(有部分bug没有解决),所以我们也就不用了,目前我们使用django-rest-framework-simplejwt
 

介绍

Simple JWTDjango REST Framework提供了JSON Web TOKEN身份验证。并且借鉴了DRF中的另一个JSON web token库和django-rest-framework-jwt
 

安装

1.使用以下pip命令安装

pip install djangorestframework-simplejwt

 

2.然后我们在settings.py中认证类

REST_FRAMEWORK = {
    ...
    'DEFAULT_AUTHENTICATION_CLASSES': (
        ...
        'rest_framework_simplejwt.authentication.JWTAuthentication',
    )
    ...
}

 

3.我们在根urls.py中配置路由视图TokenObtainPairViewTokenRefreshView

from rest_framework_simplejwt.views import (
    TokenObtainPairView,
    TokenRefreshView,
)

urlpatterns = [
    ...
    path('api/token/', TokenObtainPairView.as_view(), name='token_obtain_pair'),
    path('api/token/refresh/', TokenRefreshView.as_view(), name='token_refresh'),
    ...
]

 

4.如果需要使用本地化,那么只需把rest_framework_simplejwt加入到INSTALLED_APPS

INSTALLED_APPS = [
    ...
    'rest_framework_simplejwt',
    ...
]

 

验证

最后我们使用接口工具验证simple jwt是否能正常工作,访问http://127.0.0.1:8000/api/token/
django1.8_django-vue-admin
可以看到返回了accessrefresh两个token

  • access:默认5分钟的有效期
  • refresh:当access过期了,就需要传入refresh字段,重新刷新token,访问http://127.0.0.1:8000/api/token/refresh/

django1.8_django-vue-admin
 

配置信息解释

settings.py中可以配置一些默认的信息

# Django project settings.py

from datetime import timedelta

...

SIMPLE_JWT = {
    'ACCESS_TOKEN_LIFETIME': timedelta(minutes=5),   # 设置token有效时间
    'REFRESH_TOKEN_LIFETIME': timedelta(days=1),  # 刷新token有效时间
    'ROTATE_REFRESH_TOKENS': False,  
    'BLACKLIST_AFTER_ROTATION': False,
    'UPDATE_LAST_LOGIN': False,  # 设置为True会在用户登录时,更新user表中的last_login字段

    'ALGORITHM': 'HS256',  # 加密算法
    'SIGNING_KEY': settings.SECRET_KEY,  # 签名密钥
    'VERIFYING_KEY': None,  # 验证密钥,用于验证生成令牌的内容
    'AUDIENCE': None,  # 设置为None时,此字段将从token中排除,并且不会进行验证
    'ISSUER': None,  # 设置为None时,此字段将从token中排除,并且不会进行验证
    'JWK_URL': None,  # 设置为None时,此字段将从token中排除,并且在验证期间不使用
    'LEEWAY': 0,  # 用来给到期时间留一些余地

    'AUTH_HEADER_TYPES': ('Bearer',),  # 认证的标签头,类似jwt token中的jwt
    'AUTH_HEADER_NAME': 'HTTP_AUTHORIZATION',  # 身份验证的授权标头名称
    'USER_ID_FIELD': 'id',
    'USER_ID_CLAIM': 'user_id',  # 生成token中声明将用于存储用户标识符  
    'USER_AUTHENTICATION_RULE': 'rest_framework_simplejwt.authentication.default_user_authentication_rule',

    'AUTH_TOKEN_CLASSES': ('rest_framework_simplejwt.tokens.AccessToken',),
    'TOKEN_TYPE_CLAIM': 'token_type',  # 用于存储token类型的声明名称

    'JTI_CLAIM': 'jti',  # 用于存储令牌的唯一标识符的声明名称

    'SLIDING_TOKEN_REFRESH_EXP_CLAIM': 'refresh_exp',
    'SLIDING_TOKEN_LIFETIME': timedelta(minutes=5),
    'SLIDING_TOKEN_REFRESH_LIFETIME': timedelta(days=1),
}

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/166059.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月7日 下午12:46
下一篇 2022年8月7日 下午12:46


相关推荐

  • Qwen Code v0.0.8 重磅发布:深度集成 VS Code

    Qwen Code v0.0.8 重磅发布:深度集成 VS Code

    2026年3月13日
    1
  • oracle导入dmp文件时出现错误

    oracle导入dmp文件时出现错误nbsp 今天在给 oracle 导入 dmp 文件时老是出现错误 无论是命令行或 PL SQL 错误截图如下 经查是导入用户的权限不足 导入用户并没有 DBA 权限 而导出的 dmp 文件是有 DBA 权限的 所以出现了如上错误 解决方法 给导入的用户赋权限 PL SQL Objects users edit 如下图所示 nbsp connect 是最基本的权限 dba 是可以以 dba 角色登录 re

    2026年3月17日
    2
  • data grip 激活码-激活码分享2022.02.20

    (data grip 激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~HC…

    2022年4月1日
    110
  • JTAG各类接口针脚定义及含义

    JTAG各类接口针脚定义及含义TAG 各类接口针脚定义及含义 JTAG 有 10pin 的 14pin 的和 20pin 的 尽管引脚数和引脚的排列顺序不同 但是其中有一些引脚是一样的 各个引脚的定义如下 一 引脚定义 TestClockInp TCK 强制要求 1TCK 在 IEEE1149 1 标准里是强制要求的 TCK 为 TAP 的操作提供了一个独立的 基本的时钟信号 TAP 的所有操作都是通过这个时钟

    2026年3月18日
    2
  • redis分布式锁两种应用场景

    redis分布式锁两种应用场景分布式锁 是用来解决分布式应用中 并发冲突 的一种常用手段 实现方式一般有基于 zookeeper 及基于 redis 二种 具体到业务场景中 我们要考虑二种情况 一 抢不到锁的请求 允许丢弃 即 忽略 比如 一些不是很重要的场景 比如 监控数据持续上报 某一篇文章的 已读 未读 标识位更新 对于同一个 id 如果并发的请求同时到达 只要有一个请求处理成功 就算成功 用活动图表示如下 二 并发请求 不论哪一条都必须要处理的场景 即 不允许丢数据 比如 一个订单 客户正在前台修改地址

    2026年3月17日
    2
  • 编译原理学习笔记之上下文无关文法

    编译原理学习笔记之上下文无关文法一 上下文无关文法 1 定义上下文无关文法是这样一个四元组 VT VN S P VT 终结符集合 非空有限集合 记号名是其同义词 VN 非终结符集合 非空有限集合且 VT VN S 开始符号 P 产生式集合 形如 A gt a A VN a VN VT 其中 终结符可以理解为词法单元 即是符号的最终形式 非终结符就是匹配终结符过程中引入的中间量 例 i

    2025年8月1日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号