У меня есть приложение 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 на обоих серверах, так что это не так. Что еще это может быть?