django项目中 配置jwt认证

1.项目中安装djangorestframework-jwt

pip install djangorestframework-jwt

2.在yd_api/settings/dev.py中添加登录认证配置

REST_FRAMEWORK = {
    # 登录认证类
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework_jwt.authentication.JSONWebTokenAuthentication',
        'rest_framework.authentication.SessionAuthentication',
        'rest_framework.authentication.BasicAuthentication',
    ),
}import datetime
JWT_AUTH = {
    # 设置jwt在客户端的有效期
    'JWT_EXPIRATION_DELTA': datetime.timedelta(days=1),
    # 设置返回数据的格式
    'JWT_RESPONSE_PAYLOAD_HANDLER': 'yd_api.apps.users.utils.jwt_response_payload_handler',
}

3.总路由配置yd_api/urls.py

from django.urls import path,re_path,include
    path('users/', include("users.urls"))
]

4.yd_api/apps/users/urls.py中配置

from rest_framework_jwt.views import obtain_jwt_token
from django.urls import path
urlpatterns = [
    path("login/", obtain_jwt_token),   # jwt接口
]

5.启动项目,在postman中测试(测试前需要创建一个用户python manage.py createsuperuser)

6.配置jwt返回自定义数据yd_api/apps/users/utils.py

def jwt_response_payload_handler(token,user=None,request=None):
    """
    自定义jwt认证成功返回数据
    :param token  本次登录成功以后,返回的jwt
    :param user   本次登录成功以后,从数据库中查询到的用户模型信息
    :param request 本次客户端的请求对象
    """
    return {
        'token': token,
        'id': user.id,
        'username': user.username
    }

7.启动前端项目访问登录接口,如下可以看到在jwt中配置的自定义数据都已经返回

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值