Django Restful API-使用令牌获取用户ID

时间:2018-07-23 14:21:37

标签: django django-rest-framework

如何从具有身份验证令牌的Django API获取用户ID? 基本上,我想发送身份验证令牌并找回用户ID。 我已经尝试过以下解决方案:How can I return user ID with token in Django? 但是它会返回带有提供的用户名和密码的令牌,这不是我想要的。

3 个答案:

答案 0 :(得分:2)

#myapp/views.py
class UserIdViewSet(viewsets.ModelViewSet):
    serializer_class = UserSerializer

    def get_queryset(self):
        return User.objects.filter(id=self.request.user.id)

#myapp/urls.py
router.register(r'api/user-id', userviews.UserIdViewSet, base_name="UserId")

找出问题所在。基本上创建了视图集,并针对当前用户进行了整理。

答案 1 :(得分:0)

您使用哪种身份验证?

例如,如果您从rest_framework中使用TokenAuthentication,则可以查看此类如何实现请求身份验证。

您可以在其中找到方法authenticateauthenticate_credentials,我相信在那里-您将找到如何获得用户的答案。

答案 2 :(得分:0)

在perform_create方法中,您可以将用户分配给模型

class EmailViewSet(viewsets.ModelViewSet):
    authentication_classes = (TokenAuthentication)
    permission_classes = (IsAuthenticated,)
    queryset = Email.objects.all()
    serializer_class = EmailSerializer

    def perform_create(self, serializer):
        serializer.save(user=self.request.user)