我们在验证完用户的身份后(检验用户名和密码),需要向用户签发JWT,在需要用到用户身份信息的时候,还需核验用户的JWT。
关于签发和核验JWT,我们可以使用Django REST framework JWT扩展来完成。
安装配置
安装
pip install djangorestframework-jwt
配置
REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': ( rest_framework_jwt.authentication.JSONWebTokenAuthentication,rest_framework.authentication.SessionAuthenticationrest_framework.authentication.BasicAuthenticationJWT_EXPIRATION_DELTA': datetime.timedelta(days=1),}
- JWT_EXPIRATION_DELTA 指明token的有效期
账号登录
Django REST framework JWT提供了登录签发JWT的视图,可以直接使用
from django.conf.urls import re_path from rest_framework_jwt.views obtain_jwt_token urlpatterns = [ re_path(r^authorizations/$默认的返回值仅有token,我们还需在返回值中增加username和user_id。通过修改该视图的返回值可以完成我们的需求。
def jwt_response_payload_handler(token,user=None,request=None): """ 自定义jwt认证成功返回数据 """ return { token: token,1)">id: user.id,1)">username: user.username }# JWT配置 JWT_AUTH =': datetime.timedelta(days=1JWT_RESPONSE_PAYLOAD_HANDLER': meiduo_admin.utils.jwt_response_payload_handler版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。