Axios 419 (неизвестный статус) Laravel API токен csrf изменен - PullRequest
0 голосов
/ 01 октября 2019

Я получаю сообщение об ошибке, когда запрашиваю свой бэкэнд Laravel с Axios, получаю данные обратно и запрашиваю другой API для некоторых данных, и это хорошо, но после того, как API возвращает данные, и я запрашиваю свой бэкэнд laravelхранить данные. Он возвращает ответ с

app.js: 360 POST http://technotrace.tech/session-adding-api 419 (неизвестный статус)

Я пытался проверить мой бэкэнд PHP иэто останавливается, только если я отключаю группу промежуточного программного обеспечения VerifyCSRFToken.

Но мне все равно нужно проверить токен CSRF по соображениям безопасности.

Я могу понять, почему токен csrfизменяется при отправке запроса.

Если я просто отправляю запрос на мой сервер Laravel, то все идет хорошо, но когда я запрашиваю другой API, возникает проблема при отправке запроса на мой сервер.

function addSession(url, formdata) {

    //Add Session
    axios.post(url, formdata)
        .then(res => {
            console.log(res)

            var data = res.data;

            if ((data.session_info != null && data.session_info != {})) {
                console.log(data.session_info);
            }

        })
        .catch(err => {

            console.error(err);
        })

}

function getApiDetails() {

    //Start getting api details
    axios.get('https://ipapi.co/json/').then(res => {

            console.log(res)
            var csrf = jr('meta[name="csrf-token"]').get(0).content;
            var ses_id = jr('meta[name="verify-token"]').get(0).content;
            var cur_url = jr('link[rel="canonical"]').get(0).href;

            // console.log(csrf, ses_id, cur_url);

            var url = '/session-adding-api';

            var formdata = new FormData();

            formdata.append('_token', csrf);
            formdata.append('session_token', ses_id);
            formdata.append('session_repeat', 0);
            formdata.append('current_url', cur_url);

            Object.entries(res.data).forEach(entry => {
                // console.log(entry[0], entry[1]);
                formdata.append(entry[0], entry[1]);

            });

            addSession(url, formdata);

        })
        .catch(err => {
            console.error(err);
        })

    //End getting api details

}

function matchSession() {

    //Match Session Start
    var csrf = jr('meta[name="csrf-token"]').get(0).content;
    var ses_id = jr('input[name="verify-token"]').get(0).content;

    var url = '/session-matching-api';

    var formdata = new FormData();

    formdata.append('_token', csrf);
    formdata.append('session_token', ses_id);

    axios.post(url, formdata)
        .then(res => {
            console.log(res)

            var data = res.data;

            if ((data.match != true)) {

                getApiDetails()

            }
        })
        .catch(err => {
            console.error(err);
        })
    //Match Session

}

matchSession();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...