Vue.js запрашивает отправку токена, неожиданно завершается с 401 при тестировании на реальном сервере - PullRequest
0 голосов
/ 09 сентября 2018

У меня есть приложение Vue.js, которое есть в файле api.js.
Это место, куда я помещаю заголовки авторизации, прежде чем отправлять запросы на сервер.

Vue.http.options.root = 'http://localhost:8044'
Vue.http.options.api = Vue.http.options.root + '/api/v1/'
Vue.http.headers.common['Accept'] = 'application/json'
Vue.http.headers.common['Content-Type'] = 'application/json'

Vue.http.interceptors.push((request, next) => {
  // set token
   store.state.token && request.headers.set('Authorization', `Bearer ${store.state.token}`)

    // continue to next interceptor
    next((response) => {

         console.log(response)
        // DEBUG THE ROUTES
        //console.log(store.state);
        //console.log(response);
        if (response.status === 401) {
           router.push({ name: 'logout' })
        }
     })
  })

В основном, если маршрут завершается неудачно с 401, это означает, что токен заголовка не прошел авторизацию, и я вышел из системы пользователя.

Это прекрасно работает локально. Если возвращается 401, он выходит из системы, и если заголовок успешно выполняется, запрос может продолжаться.

Однако, когда я пытаюсь подключиться к реальному серверу, в отличие от моего локального хоста (оба работают с идентичными установками Lumen / App)

   Vue.http.options.root = 'http://myserver.com'

Всегда возвращает 401, несмотря ни на что. Даже если у меня есть действующий токен.

Первый запрос на вход, возвращает действительный токен и работает нормально. Затем я сохраняю токен и использую его в последующих запросах.

Но тогда каждый последующий запрос возвращает 401 и немедленно выводит меня из системы. Несмотря на то, что когда я консоль регистрирую запрос, он показывает, что заголовки Auth используются очень хорошо.

Только на реальном сервере. Не на местном. С чего бы это?

Другая вещь заключается в следующем ... Если я запускаю первый запрос, чтобы получить токен, копирую токен в Почтальон и вручную запускаю любой запрос к серверу, о котором идет речь, он прекрасно возвращается с 200. Не Несанкционированный 401.

Я думал, что это может быть проблема с CORS, но я проверил все это, и у меня включена поддержка CORS на обоих серверах, так что это не так. Что еще это может быть?

...