Django, токен csrf не установлен

в settings.py:


#SESSION_COOKIE_SAMESITE = 'Strict'
SESSION_COOKIE_HTTPONLY = True
#CSRF_COOKIE_SECURE = True
#SESSION_COOKIE_SECURE = True

CSRF_TRUSTED_ORIGINS = [ "http://localhost:3000",'http://127.0.0.1:8000']

в файле views.py:

@method_decorator(csrf_protect,name='dispatch')
class LoginView(views.APIView):
    permission_classes = [AllowAny,]
    serializer_class = serializer.LoginSerializer
    def post(self,request):
        data = serializer.LoginSerializer(data=request.data)
        print(data.is_valid())
        print(data.errors)
        if data.is_valid():
            email = data.data['email']
            password = data.data['password']
            auth = authenticate(username=email,password=password)
            if auth:
                login(request,auth)
                return HttpResponse(request.session.session_key
                ,status=200)
            else:
                print(password == "")
                if email == "" and password =="":
                    return HttpResponse('both email and password field are empty',status=400)

                elif email == "":
                    return HttpResponse('email field is empty',status=400)
                elif password == "":
                    print("Here")
                    return HttpResponse('passowrd field is empty',status = 400)

проблемы возникают во фронтенде, (localhost:3000) но вот часть компонента логина:

 let handleSubmit = (e)=>{
        e.preventDefault()
        axios.post('http://127.0.0.1:8000/login/',login,{withCredential:true},{headers: {'Content-Type': 'application/json','X-CSRFToken':Cookies.get('csrftoken')}}).then(
            (res)=>{
                    console.log(res.data)

            }
    }

Я получаю: Forbidden-Csrf token not set на бэкенде, но когда я вхожу в систему с бэкенда 127.0.0.1:8000/login она работает нормально, и идентификатор сессии установлен как https only cookie, csrf установлен в cookies, но когда я делаю это с фронтенда, он выдает ошибку

есть идеи?

Вернуться на верх