我正在使用django,djangoRestFramework和Angular1.x处理单页面应用程序。我已经使用内置的登录方法实现了一个登录视图,但是无论何时我向api发出请求,它都会返回csrf验证失败。
我用csrf_protect装饰器包装我的登录视图,如:
class LoginView(views.APIView):
@method_decorator(csrf_protect)
def post(self, request):
user = authenticate(
username=request.data.get('username'),
password=request.data.get('password')
)
if user is None or not user.is_active:
return Response({
'status': 'Unauthorized',
'message': 'Username or password incorrect'
}, status=status.HTTP_401_UNAUTHORIZED)
login(request,user)
return Response(UserSerializer(user).data)
我运行了angular.config,如:
angular.run(['$http', function($http) {
$http.defaults.xsrfHeaderName = 'X-CSRFToken';
$http.defaults.xsrfCookieName = 'csrftoken';
}])
当我取出csrf_protect装饰器时,它仍然给我一个错误说 '请求对象没有属性会话'。
此外,当我正在使用localhost并且在尝试登录之前访问django管理页面时,它不会给我一个错误。我无法在这里找出问题,任何帮助将不胜感激
答案 0 :(得分:0)
实际上这对我来说有角度1.4,
Supplier<...>