Search code examples
djangodjango-rest-frameworkpostman

Test Django REST Framework Login Protected API using Postman?


I need to test REST API using postman. API is build using Django REST Framework. Only login user can get access to API. I am not able to find how I can send login credentials using postman.

class ApiMemberGroupNameList(views.APIView):
    permission_classes = (
        permissions.IsAuthenticated,
        RequiredOrgPermission,
        RequiredOrgStaffMemberPermission)

    def get(self, request, **kwargs):
        pk = kwargs.get('pk')
        hash = kwargs.get('hash')
        member_obj = get_object_or_404(Member.objects.filter(org__hash=hash, pk=pk))
        return Response(GroupListSerializer(member_obj.groups.all(), many=True).data)

Solution

  • You can use Basic Auth in POSTMAN. Refer to this screenshot:

    enter image description here

    You could change the HTTP Methods, URLs, Data Payload(under Body tab) etc in the POSTMAN console

    UPDATE-1

    After your comments, I tried to recreated the problem.What I did was:

    1. created a view

       from rest_framework.views import APIView
       from rest_framework.permissions import IsAuthenticated
       from rest_framework.response import Response
      
       class MySampleView(APIView):
           permission_classes = (IsAuthenticated,)
      
           def get(self, request):
               return Response(data={"status": True})
      
    2. Added to urls.py

       urlpatterns = [
           url(r'^mysampleview/$', MySampleView.as_view())
       ]
      

    And my POSTMAN response are below:

    Authorization Screenshot

    Header Screenshot

    My conclusion

    You may enter wrong credentials, or something else. I would suggest you open a new POSTMAN tab and repeat the procedure, also try to login Django admin using the same credential which is already used in POSTMAN.