Get Authenticated user from token in Django Rest Framework Get Authenticated user from token in Django Rest Framework angularjs angularjs

Get Authenticated user from token in Django Rest Framework


Keeping in mind that I am also new to Angular and DRF...

If you are already receiving the token, then on the angularjs side, you need to be including the token in the headers of your subsequent requests. Perhaps like this abbreviated code from the authentication request:

$http({auth request code here}).then(function(response){  var token = response.headers().token  $http.defaults.headers.common['Authorization'] = 'Token ' + token;});

In your ViewSet you would likely want

authentication_classes = (TokenAuthentication,)

along with whatever permission_classes are relevant.

If you are including the Token in the Angular http request, then I believe you can reference the user with request.user, like perhaps

def list(self, request):    queryset = SomeObject.objects.filter(owner=request.user)

Or, here is another use (User model is django.contrib.auth.models.User):

class UserView(RetrieveAPIView):    model = User    serializer_class = UserSerializer    def retrieve(self, request, pk=None):        """        If provided 'pk' is "me" then return the current user.        """        if request.user and pk == 'me':            return Response(UserSerializer(request.user).data)        return super(UserView, self).retrieve(request, pk)


In my case, I am trying to test my API with an API REST Client. When I put the Header in the configuration, it works.

Authorization: Token <<token>>