JWT认证

一 JWT认证流程

在这里插入图片描述

二 JWT字符串的数据格式 - 由3部分组成

头部(header).载荷(payload).签证(signature)

# 例如下方就是一个加密后的完整JWT字符串
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

在这里插入图片描述

三 服务器验证JWT有效性

在这里插入图片描述

四 使用JWT验证的注意点

  1. 不应该在payload部分存放敏感信息,因为payload部分在客户端可以被直接解密;
  2. secret密钥是验证signature的关键,所以不应流出;

五 JWT字符串的使用

# 1. 安装djangorestframework-jwt
pip install djangorestframework-jwt

# 2. 在settings.py进行认证配置
REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': (
    	 # 添加jwt认证
        'rest_framework_jwt.authentication.JSONWebTokenAuthentication',
        'rest_framework.authentication.SessionAuthentication',
        'rest_framework.authentication.BasicAuthentication',
    ),
}

# JWT_EXPIRATION_DELTA设置jwt的有效时间
JWT_AUTH = {
    'JWT_EXPIRATION_DELTA': datetime.timedelta(days=1),
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值