Django restframework-jwt 认证token

    • 直接使用Django Restframework_jwt 提供的登录签发Jwt 的视图

      •  

         

         

    • 点进去看源码,发现在序列化器对象中获取token值

      •  

         

         

    • 找序列化器类位置,看用什么方法生成token及最后的返回值

  1.  

     

    • 再点进去看,生成token的方法在这,感兴趣的话可以继续往下找

  2.  

     

    • 现在,我们只关心他的响应内容(默认返回token值,我们需要更多的值),所以回到原来的位置,重写jwt_response_playload_head方法

  3.  

     

          
    • 具体的做法

      • 在users/utils.py 中,创建

        def jwt_response_payload_handler(token, user=None, request=None):
            """
            自定义jwt认证成功返回数据
            """
            return {
                'token': token,
                'id': user.id,
                'username': user.username
            }
      • 修改配置文件

        # JWT配置
        JWT_AUTH = {
            'JWT_EXPIRATION_DELTA': datetime.timedelta(days=1),
            'JWT_RESPONSE_PAYLOAD_HANDLER': 'meiduo_admin.utils.jwt_response.jwt_response_payload_handler',
        }
         

         

posted on 2021-08-09 16:06  paike123  阅读(173)  评论(0编辑  收藏  举报

导航