首页 文章

JWT与django集成

提问于
浏览
0

我是Django(不是DRF)的新手,我很难配置我的身份验证要求 . 我有一个外部身份验证服务,获取用户名和密码并返回JWT . 在我拥有JWT之后,我应该如何保存令牌并向浏览器提供每个请求 . 之后我可以在哪里验证它?

谢谢!

1 回答

  • 0

    对于您的服务获得的每个呼叫,应该有该呼叫的标头

    {'Authorization':'Token 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b'}
    

    你可以在views.py中使用它:

    if request.user.is_authenticated():
    

    它必须包含在该django项目的设置文件中 .

    JWT_AUTH = {
        # 'JWT_ENCODE_HANDLER':
        # 'rest_framework_jwt.utils.jwt_encode_handler',
    
        # 'JWT_DECODE_HANDLER':
        # 'rest_framework_jwt.utils.jwt_decode_handler',
    
        # 'JWT_PAYLOAD_HANDLER':
        # 'rest_framework_jwt.utils.jwt_payload_handler',
    
        # 'JWT_PAYLOAD_GET_USER_ID_HANDLER':
        # 'rest_framework_jwt.utils.jwt_get_user_id_from_payload_handler',
    
        # 'JWT_RESPONSE_PAYLOAD_HANDLER':
        # 'rest_framework_jwt.utils.jwt_response_payload_handler',
    
        # 'JWT_SECRET_KEY': settings.SECRET_KEY,
        # 'JWT_ALGORITHM': 'HS256',
        # 'JWT_VERIFY': True,
        # 'JWT_VERIFY_EXPIRATION': False,
        # 'JWT_LEEWAY': 0,
        'JWT_EXPIRATION_DELTA': datetime.timedelta(days=1),
        # 'JWT_AUDIENCE': None,
        # 'JWT_ISSUER': None,
    
        # 'JWT_ALLOW_REFRESH': False,
        # 'JWT_REFRESH_EXPIRATION_DELTA': datetime.timedelta(days=7),
    
        # 'JWT_AUTH_HEADER_PREFIX': 'JWT',
    }
    

    阅读更多相关信息here .

相关问题