微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Django REST framework JWT

我们在验证完用户的身份后(检验用户名密码),需要向用户签发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] 举报,一经查实,本站将立刻删除。

相关推荐