API Django и Reactjs 401 Forbidden

Я установил Django backend, который получает вызовы от react js frontend. Они развернуты на двух отдельных серверах. Мои пользователи могут войти в систему и получить токен, который, как я вижу, хранится в браузере должным образом. Эта функциональность работает просто отлично. Однако, когда я делаю вызовы (кроме входа в систему) к бэкенду, я получаю ошибку 401 unauthorized. Чтобы проверить функциональность, я создал базовый запрос, который в ReactJS выглядит следующим образом.

    //Axios variables required to call the predict API
            let headers = { 'Authorization': `Token ${props.token}` };
            let url = settings.API_SERVER + '/api/test/predict/';
            let method = 'post';
            let config = { headers, method, url, data: irisFormData };

            //Axios predict API call
            axios(config).then(
                res => {setPrediction(res.data["Predicted Iris Species"])
                }).catch(
                    error => {alert(error)})

Примечание:. setPrediction() - это просто состояние реакции.

Это связанное представление на бэкенде.

class IRIS_Model_Predict(APIView):

    authentication_classes = [TokenAuthentication]
    permission_classes = [IsAuthenticated]

    def post(self, request, format=None):
        data = request.data
        keys = []
        values = []
        for key in data:
            keys.append(key)
            values.append(data[key])
        X = pd.Series(values).to_numpy().reshape(1, -1)
        loaded_mlmodel = PredictionConfig.mlmodel 
        y_pred = loaded_mlmodel.predict(X)
        y_pred = pd.Series(y_pred)
        target_map = {0: 'setosa', 1: 'versicolor', 2: 'virginica'}
        y_pred = y_pred.map(target_map).to_numpy()
        response_dict = {"Predicted Iris Species": y_pred[0]}
        return Response(response_dict, status=200)

Мое предположение - headers = { 'Authorization': Token ${props.token} }; не передается должным образом в бэкенд, но у меня это внутри конфигурации для вызова axios, поэтому я не совсем уверен, в чем проблема.

У меня также есть эта настройка для cors origins

CORS_ALLOWED_ORIGINS = [
    'https://example.com',
    'https://www.example.com',
]

Примечание: example.com заменен на правильный URL моего сайта

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