Ответ сервера содержит заголовок авторизации, но я не вижу его в приложении Vue - PullRequest
0 голосов
/ 25 октября 2019

У меня есть приложение Vue, работающее со службой REST (приложение Spring Boot). В сервисе аутентификация реализована с помощью SpringSecurity. Запросы перекрестного происхождения включены.

В приложении Vue я получаю авторизацию следующим образом:

let credentialsUrl = "username=" + this.username + "&" + "password=" + this.password;
axios
    .post('https://bearings-info.herokuapp.com/login', credentialsUrl)
    .then(response => {
    if (response.status === 200) {
        let authorization = response.headers.authorization;
        this.$store.dispatch("setAuthorization", authorization);
    }
    });
}

И на локальном хосте все работает нормально: я успешно получаю свой токен на предъявителя.

Но теперь служба REST развернута на удаленном сервере (Heroku). И ответ объекта Vue больше не содержит авторизации.

Почему это происходит?

Дополнительно # 1:

Вывод файла console.log (JSON.stringify (response))) метод:

Ответ от localhost, есть авторизация:

{"data": "", "status": 200, "statusText": "", "headers": {"pragma": "no-cache", "date": "Fri, 25 Oct 2019 09:17:06 GMT", "x-content-type-options": "nosniff", "server": "nginx / 1.14+0,0 (Ubuntu)», "разрешение": "Знаменосец eyJ0b2tlblR5cGUiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJpc3MiOiJzZWN1cmUtYXBpIiwiYXVkIjoic2VjdXJlLWFwcCIsInN1YiI6ImFkbWluIiwiZXhwIjoxNTcyODU5MDI2LCJyb2xlcyI6WyJST0xFX0FETUlOIl19.1SBIxIIk0qkja05_6t3lmPIpBh58LajaMvdW-i9xkzqVZNSspJ-zQ9E07xVxut02QaxUx9oHeeap76mqL1PUhA", "х-каркасные опции": "ЗАПРЕТИТЬ", "контроль доступа-Allow-Origin": "*","cache-control": "no-cache, no-store, max-age = 0, must-revalidate", "connection": "keep-alive", "content-length": "0", "x-xss-защита ":" 1; mode = block "," expires ":" 0 "}," config ": {" url ":" / backend / login "," method ":" post "," data":" username = admin & password = admin "," headers ": {" Accept ":" application / json, text / plain, / "," Content-Type ":" application / x-www-form-urlencoded "},"transformRequest": [NULL], "transformResponse": [NULL], "тайм-аут": 0, "xsrfCookieName": "XSRF-ЗНАК", "xsrfHeaderName": "X-XSRF-ЗНАК", "maxContentLength": - 1}, "request": {}}

Ответ от удаленного сервера, без авторизации:

{"data": "", "status": 200, "statusText": "","headers": {"pragma": "no-cache", "cache-control": "no-cache, no-store, max-age = 0, must-revalidate", "expires": "0"},"конфигурация": { "URL": "https://bearings -info.herokuapp.com / Логин ", "метод": "пост", "данные": "Имя пользователь = администратор и пароль = админ",»headers ": {" Accept ":" application / json, text / plain, / "," Content-Type ":" application / x-www-form-urlencoded "}," transformRequest ": [null]," transformResponse ": [NULL], "тайм-аут": 0, "xsrfCookieName": "XSRF-ЗНАК", "xsrfHeaderName": "X-XSRF-ЗНАК", "maxContentLength": - 1}, "запрос": {}}

Ответ от сервера (и от localhost, и от Heroku - то же самое для both) в консоли Chrome (Network, Headers) есть Авторизация:

Авторизация: Bearer eyJ0b2tlblR5cGUiOiJKV1Qi ...

Дополнительно # 2:

Существует nginx в качестве обратного проксимежду клиентским приложением Vue и REST на локальном хосте. И нет nginx между клиентом и удаленным REST. Может быть, в этом причина?

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