我正在使用 Django 版本 1.8 并使用 django-rest-framework-jwt 进行身份验证。
身份验证后,我们的应用程序将返回前端信息:
from rest_framework_jwt.settings import api_settings
from rest_framework.response import Response
from django.contrib.auth.models import User
jwt_payload_handler = api_settings.JWT_PAYLOAD_HANDLER
jwt_encode_handler = api_settings.JWT_ENCODE_HANDLER
user.profile_picture = "test_profile_picture.jpg" #user is django.contrib.auth.models.User object
payload = jwt_payload_handler(user)
token = jwt_encode_handler(payload)
jwt_login_response = {
"token": token
}
return Response(jwt_login_response,status=status.HTTP_200_OK)
在前端,我们将通过以下方式解码
import jwtDecode from 'jwt-decode';
var decodedToken = jwtDecode(token);
但目前,decodedToken 仅包含 django-rest-framework-jwt 似乎默认的值
Object {username: "test", user_id: 9, email: "[email protected] /cdn-cgi/l/email-protection", exp: 1454754137}
我想在 jwt 中存储更多信息,例如profile_picture
但我不知道怎么做。我真的很想找到解决这个问题的方法。
您可以使用以下命令覆盖附加到令牌的有效负载JWT_PAYLOAD_HANDLER setting http://getblimp.github.io/django-rest-framework-jwt/#jwt_payload_handler.
默认实现包括username
, user_id
, email
, and exp
(到期时间),正如您所注意到的。你可以找到默认的实现在 GitHub 上 https://github.com/GetBlimp/django-rest-framework-jwt/blob/df2a01c48dc0d7b804577cb9f94863b54a32d8de/rest_framework_jwt/utils.py#L10-L42.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)