Django Rest Framework angularjs会话身份验证用户

时间:2018-09-16 11:42:14

标签: angularjs django rest django-rest-framework

从我的viewSet类访问request.user时,我不断收到此错误。 TypeError:int()参数必须是字符串,类似字节的对象或数字,而不是'AnonymousUser'

视图集

class FriendRequestViewSet(viewsets.ModelViewSet):
    """
    API endpoint that allows users to be viewed or edited.
    """

    def list(self, request):
        queryset = FriendshipRequest.objects.filter(to_user=request.user)
        print(queryset)
        serializer = FriendRequestSerializer(queryset, many=True)
        return Response(serializer.data)

    queryset = FriendshipRequest.objects.all()
    serializer_class = FriendRequestSerializer

与获得身份验证的邮递员一起使用时效果很好。但是我的angularJs应用程序出现内部错误。

这是服务:

this.getFriendRequests = function () {
        var token = $window.sessionStorage.getItem('token');
        console.log('TOKEN IS => ' + token);
        console.log('cookie is : ' + getCookie('csrftoken'));
        $http.defaults.headers.post['X-CSRFTOKEN'] = getCookie('csrftoken');
        return $http.get('http://127.0.0.1:8000/friendsrq/', {
            headers: { 'Authorization': 'token: ' + token }
        });
    };

我使用令牌认证

1 个答案:

答案 0 :(得分:1)

我认为这是您的角度编码中的一个小错字。

在标题中使用大写字母 T (即应为 Token 而不是token

headers: {'Authorization': 'Token: ' + token}