django1.8_django serializers

django1.8_django serializers前言由于之前我们一直使用的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 serializers
可以看到返回了accessrefresh两个token

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

django1.8_django serializers
 

配置信息解释

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/164816.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Qml异步加载图片「建议收藏」

    Qml异步加载图片「建议收藏」当图片很大时,加载图片可能导致UI线程的阻塞,为了确保图片在加载过程中不会阻塞UI线程,将Image元素的’asynchronous’设置为trueImage{asynchronous:truesource:"test.png"}…

    2022年10月23日
    0
  • 手机版mt4如何操作_安卓不能下载MT4

    手机版mt4如何操作_安卓不能下载MT4新手客户按照本文操作流程操作几遍,对MT4手机软件基本上就会非常熟练了。导航目录1.下载显示隐藏重新排序简单/高级视图新建图表行情周期添加/删除指标APP手机端MT4软件的功能模块一、软件下载登录1.下载通过无佣网开户的客户,下载对应APP手机版MT4软件后,手机桌面会有该交易商的软件图标,类似如下:2.登录点击MT4图标打开软件,点击软件左上角,进入“管理账户”里添加交易账户。已添加的交易账户,…

    2022年8月15日
    1
  • 数据库ER图怎么画

    数据库ER图怎么画https://jingyan.baidu.com/article/624e745961c6a134e9ba5a40.html

    2022年6月21日
    22
  • stat函数返回值_strcat函数

    stat函数返回值_strcat函数#include<sys/types.h>#include<sys/stat.h>#include<unistd.h>//需包含头文件有如下三个函数的函数原型:intstat(constchar*path,structstat*buf);第一个形参:指出文件(文件路径);第二个形参:出参数(函数对该参数操作,然后…

    2022年8月21日
    4
  • 使用NPOI导出Excel文件

    使用NPOI导出Excel文件使用NPOI导出Excel文件,本实例使用了ASP.NETMVC。1、使用NPOI导出Excel文件实例:导出商品列表。要求:1、通过NPOI导出导出商品列表信息;2、使用Excel函数计算商品总金额;在Controllers控制器目录中创建ExportController.cs控制器usingSystem.IO;usingNPOI;usingNPOI.POI…

    2022年6月15日
    29
  • 最详细、最完整的相机标定讲解

    最详细、最完整的相机标定讲解张正友标定

    2022年5月28日
    40

发表回复

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

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