代码之家  ›  专栏  ›  技术社区  ›  Divyanshu Jimmy

Django JSONWebTokenAuthentication不适用于视图

  •  1
  • Divyanshu Jimmy  · 技术社区  · 7 年前

    我正在使用

    rest\u framework\u jwt。身份验证。JSONWebTokenAuthentication

    对于我的REST API。这对于身份验证很有效,但对于我的技能视图,即使我没有传递任何身份验证令牌,我也能够命中REST端点。

    如何使我的技能API经过验证。此外,我是Django的新手,所以在用户视图中我确实有一个类,但在我的技能视图中,我没有找到一个正确的示例来创建类。

    请帮我做这个。

    我有以下视图文件:

    from rest_framework.permissions import IsAuthenticated
    
    
    @api_view(['GET'])
    def skill_collection(request):
        if request.method == 'GET':
            skills = Skill.objects.all()
            serializer = SkillSerializer(skills, many=True)
            return Response(serializer.data)
    
    @api_view(['GET'])
    def skill_element(request, pk):
        try:
            skill = Skill.objects.get(pk=pk)
        except Skill.DoesNotExist:
            return HttpResponse(status=404)
    
        if request.method == 'GET':
            serializer = SkillSerializer(skill)
            return Response(serializer.data)
    

    Url文件:

    urlpatterns = [
        path('admin/', admin.site.urls),
        url(r'^rest-auth/', include('rest_auth.urls')),
        url(r'^rest-auth/registration/', include('rest_auth.registration.urls')),
        url(r'^rest-auth/login/', include('rest_auth.registration.urls')),
        url(r'^refresh-token/', refresh_jwt_token),
        url(r'^user/$', DetailsView.as_view(), name='rest_user_details'),
        url(r'^', include('api.urls')),
        url(r'^api/v1/skills/$', wantedly_app_views.skill_collection),
        url(r'^api/v1/skills/(?P<pk>[0-9]+)$', wantedly_app_views.skill_element)
    
    ]
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   Divyanshu Jimmy    7 年前

    我可以通过在设置中添加以下权限来添加JWT身份验证。py公司

    'DEFAULT_PERMISSION_CLASSES': (
            'rest_framework.permissions.IsAuthenticated',
        ),
    

    如果这是正确的,请发表评论