如何从具有身份验证令牌的Django API获取用户ID? 基本上,我想发送身份验证令牌并找回用户ID。 我已经尝试过以下解决方案:How can I return user ID with token in Django? 但是它会返回带有提供的用户名和密码的令牌,这不是我想要的。
答案 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,则可以查看此类如何实现请求身份验证。
您可以在其中找到方法authenticate
和authenticate_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)