使用 Django drf 和简单的 jwt 获取当前用户

getting the current user with Django drf and simple jwt

我试图让当前用户使用 rest 框架和简单的 jwt

我是 Django 的新手,我写了一个简单的视图来完成这项工作

  class UserDetail(viewsets.ModelViewSet):
    queryset = User.objects.all()
    serializer_class = UserSerializer
    authentication_classes = [JWTAuthentication,]
    permission_classes = [IsAuthenticated,]

但出于某种原因,当我 post 用户凭据在 postman 端点时它说

    {
    "detail": "Authentication credentials were not provided."
    }

但是当我删除 ==> authentication_classes = [JWTAuthentication,] 和 permission_classes = [IsAuthenticated,]

它有效并激怒了当前用户,我的问题是这是正确的做法吗,这样做是否有任何风险,以及他们是否是更好、更安全的做法。提前致谢!!

这是 postM 请求数据

的屏幕截图

这是 URL 的 class:-

path('detail/', UserDetail.as_view({'get':'list'}), name="blacklist"),

您必须在请求中传递访问令牌。 如果对设置simplejwt没有信心,按照this guide:

如果您使用 postman 来测试 API,您可以提供如下所示的授权详细信息 image

如果您使用任何其他媒体发送请求,则可以在请求的 header 中添加授权:{"Authorization": "Bearer <access_token>"}

如果您能够生成令牌。您所要做的就是在 Postman url localhost:8000/detail/ 和授权选项卡下传递令牌,select Bearer token 并粘贴已生成的令牌并发送。在 settings.py 下,通过在 AUTH_HEADER_TYPES 中的 JWT 之后添加 Bearer 来编辑简单 JWT 设置。希望这对你有用。