【问题标题】:getting the current user with Django drf and simple jwt使用 Django drf 和简单的 jwt 获取当前用户
【发布时间】:2021-10-24 12:25:06
【问题描述】:

我试图用 rest 框架和简单的 jwt 来获取当前用户

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

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

但由于某种原因,当我将用户凭据发布到邮递员中的端点时,它会说

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

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

它可以工作并吸引当前用户,我的问题是这是正确的做法,这样做是否有任何风险,以及他们是否是一种更好、更安全的做法。提前谢谢!!

这是postM请求数据的截图

这是课程的 URL:-

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

【问题讨论】:

    标签: django django-rest-framework django-views django-rest-framework-simplejwt


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      • 我已经通过一个 tut 视频设置了简单的 jwt,但是我将如何获取经过身份验证的用户的详细信息,上面的代码有效但不验证 access_token 它只是简单地返回用户
      • 只是为了确定,您是在 UserDetail 视图集的 url 中还是在 TokenObtainPairView 视图中传递凭据?
      • 我该怎么做你能给我sn-p吗??
      • 你能编辑你的主帖并把你的邮递员截图放上网址和参数/数据吗?
      • 我根据您的要求编辑并放置了图像
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-13
      • 2018-11-21
      • 1970-01-01
      • 1970-01-01
      • 2021-02-25
      • 1970-01-01
      • 2014-05-02
      相关资源
      最近更新 更多