获取 JWT 返回的用户 ID
Getting user id returned with JWT
早上好,
我正在编写我的第一个 DRF API 并使用 django-rest-framework-jwt (https://getblimp.github.io/django-rest-framework-jwt/) 来处理 JWT 身份验证。
我目前正在使用内置视图:
from rest_framework_jwt.views import obtain_jwt_token
from rest_framework_jwt.views import refresh_jwt_token
urlpatterns = [
path('auth/obtain_token/', obtain_jwt_token),
path('auth/refresh_token/', refresh_jwt_token),
但是需要return一些用户信息返回给UI(VueJS)。我想将用户 ID 和名称信息存储到 Vuex 存储中,以传递给后续 API 调用并呈现给用户 ("Hello Jim!")。
我发现这个讨论为 jwt 负载响应添加自定义函数:
虽然我不确定在哪里做...
感谢您帮助澄清。
BCBB
有几个解决方案
1) 首先用户id是在JWT中编码的,你可以自己在js中解码。
2) 您可以覆盖从 django-rest-framework-jwt 返回的负载,如下所示:
例如,将以下代码放在 accounts
应用中名为 utils.py
的文件中
def jwt_response_payload_handler(token, user=None, request=None):
return {
'token': token,
'username': user.username,
'user_id' : user.id,
'email' : user.email
}
并在 rest-framework-jwt
设置中替换
'JWT_RESPONSE_PAYLOAD_HANDLER':
'rest_framework_jwt.utils.jwt_response_payload_handler',
有了这个
'JWT_RESPONSE_PAYLOAD_HANDLER':
'accounts.utils.jwt_response_payload_handler',
早上好,
我正在编写我的第一个 DRF API 并使用 django-rest-framework-jwt (https://getblimp.github.io/django-rest-framework-jwt/) 来处理 JWT 身份验证。
我目前正在使用内置视图:
from rest_framework_jwt.views import obtain_jwt_token
from rest_framework_jwt.views import refresh_jwt_token
urlpatterns = [
path('auth/obtain_token/', obtain_jwt_token),
path('auth/refresh_token/', refresh_jwt_token),
但是需要return一些用户信息返回给UI(VueJS)。我想将用户 ID 和名称信息存储到 Vuex 存储中,以传递给后续 API 调用并呈现给用户 ("Hello Jim!")。
我发现这个讨论为 jwt 负载响应添加自定义函数:
虽然我不确定在哪里做...
感谢您帮助澄清。
BCBB
有几个解决方案
1) 首先用户id是在JWT中编码的,你可以自己在js中解码。
2) 您可以覆盖从 django-rest-framework-jwt 返回的负载,如下所示:
例如,将以下代码放在 accounts
应用中名为 utils.py
def jwt_response_payload_handler(token, user=None, request=None):
return {
'token': token,
'username': user.username,
'user_id' : user.id,
'email' : user.email
}
并在 rest-framework-jwt
设置中替换
'JWT_RESPONSE_PAYLOAD_HANDLER':
'rest_framework_jwt.utils.jwt_response_payload_handler',
有了这个
'JWT_RESPONSE_PAYLOAD_HANDLER':
'accounts.utils.jwt_response_payload_handler',