如何从有鉴权token的Django API获取用户ID?基本上,我想发送身份验证令牌并获取用户id。我尝试过这个解决方案:How can I return user ID with token in Django?,但它返回的令牌带有提供的用户名和密码,这不是我想要的。
发布于 2018-07-23 23:59:01
#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")解决这个问题。基本上创建了视图集,并根据当前用户对其进行排序。
发布于 2018-07-23 22:51:47
您使用哪种类型的身份验证?
例如,如果您从rest_framework使用TokenAuthentication,那么您可以看到该类是如何实现请求身份验证的。
你可以找到authenticate和authenticate_credentials的方法,我相信在那里-你会找到如何获得用户的答案。
发布于 2019-05-28 06:44:40
在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)https://stackoverflow.com/questions/51481072
复制相似问题