12
12
from rest_framework_jwt .settings import api_settings
13
13
14
14
15
- def jwt_get_secret_key (user_id = None ):
15
+ def jwt_get_secret_key (payload = None ):
16
16
"""
17
17
For enchanced security you may use secret key on user itself.
18
18
@@ -23,7 +23,7 @@ def jwt_get_secret_key(user_id=None):
23
23
"""
24
24
if api_settings .JWT_GET_USER_SECRET_KEY :
25
25
User = get_user_model () # noqa: N806
26
- user = User .objects .get (pk = user_id )
26
+ user = User .objects .get (pk = payload . get ( ' user_id' ) )
27
27
key = str (api_settings .JWT_GET_USER_SECRET_KEY (user ))
28
28
return key
29
29
return api_settings .JWT_SECRET_KEY
@@ -87,7 +87,7 @@ def jwt_get_username_from_payload_handler(payload):
87
87
88
88
89
89
def jwt_encode_handler (payload ):
90
- key = api_settings .JWT_PRIVATE_KEY or jwt_get_secret_key (payload . get ( 'user_id' ) )
90
+ key = api_settings .JWT_PRIVATE_KEY or jwt_get_secret_key (payload )
91
91
return jwt .encode (
92
92
payload ,
93
93
key ,
@@ -101,7 +101,7 @@ def jwt_decode_handler(token):
101
101
}
102
102
# get user from token, BEFORE verification, to get user secret key
103
103
unverified_payload = jwt .decode (token , None , False )
104
- secret_key = jwt_get_secret_key (unverified_payload . get ( 'user_id' ) )
104
+ secret_key = jwt_get_secret_key (unverified_payload )
105
105
return jwt .decode (
106
106
token ,
107
107
api_settings .JWT_PUBLIC_KEY or secret_key ,
0 commit comments