【问题标题】:Get Username and Photo from JWT Token, Python从 JWT Token、Python 获取用户名和照片
【发布时间】:2018-11-23 16:22:11
【问题描述】:

我正在尝试创建一个 api 调用,该调用将返回登录个人的用户名及其照片。我正在通过应用程序登录并尝试在用户登录时触发该 api 调用。

我正在使用 rest_framework_simplejwt 登录并分配一个令牌,然后通过应用程序返回该令牌以用于访问各种 api 调用中的数据。

现在 这是我目前所拥有的:

url(r'^api/token/$', TokenObtainPairView.as_view(), name='token_obtain_pair'),

一旦验证发生并且用户得到一个令牌,我将启动这个 api 调用。

API 调用:

@csrf_exempt
def current_user(request):

    if request.method == 'POST':

        driver = JWTAuthentication().authenticate(request)[0].driver

    driverInfo = request.user.get_full_name()
    return JsonResponse({"success": driverInfo})

这是我的序列化程序:

from rest_framework_simplejwt.serializers import TokenObtainPairSerializer
from rest_framework_simplejwt.views import TokenObtainPairView

class MyTokenObtainPairSerializer(TokenObtainPairSerializer):
    @classmethod
    def get_token(cls, user):
        token = super(MyTokenObtainPairSerializer, cls).get_token(user)

        # Add custom claims
        token['name'] = user.name
        # ...

        return token

class MyTokenObtainPairView(TokenObtainPairView):
    serializer_class = MyTokenObtainPairSerializer

它只返回令牌,没有别的。任何帮助将不胜感激

【问题讨论】:

    标签: python django django-rest-framework python-requests jwt


    【解决方案1】:

    您可以自定义您的 Django REST Framework JWT 响应,

    如果您使用来自 getblimp 的 JWT 插件进行 DRF, 请参阅其文档 [1]

    DRF 的 JWT 插件有额外的设置,键为 JWT_RESPONSE_PAYLOAD_HANDLER

    所以你在 settings.py 中添加 JWT_AUTH 配置并声明你想要用作 JWT 响应负载处理程序的函数。

    文档中有一个通过 UserSerializer 提供的用户信息示例。

    [1]http://getblimp.github.io/django-rest-framework-jwt/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-02
      • 2020-10-26
      • 1970-01-01
      • 2023-03-16
      • 2016-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多