В приложении Laravel 5.8 / vuejs / vuex / mysql я использую jwt-auth, и когда я вхожу в систему (стандартная аутентификация с таблицей пользователей mysql), я использую метод:
export function setAuthorizationToken(token) {
axios.defaults.headers.common["Authorization"] = `Bearer ${token}`
}
и все работает нормально.
Далее мне нужно переделать SignUp / SignIn, чтобы использовать внешний API для операций SignUp / SignIn.Таким образом, мое приложение должно создать SignUp / SignIn с внешним API, но у меня также есть запросы на элементы управления моего приложения для чтения / записи данных из / в мой sql.
Запрос входа во внешний API возвращает только маркер, и ясохраните его в методе setAuthorizationToken выше.Далее мне нужно прочитать информацию о пользователе из этого внешнего API и сохранить его в хранилище vuex.Я делаю это, и это работает нормально, но проблема в том, что мой следующий аксиос запрос к моему элементу управления для чтения данных из триггеров БД: ошибка:
Подпись токена не может быть проверена.
Я понимаю, почему, но есть ли способ это исправить?Можно ли заменить Bearer для axios, когда мне это нужно?Может быть, какая-то замена аксиумов, чтобы использовать и аксиосы, и замену?
"laravel/framework": "5.8.*",
"tymon/jwt-auth": "^1.0.0",
"vue": "^2.5.17",
"axios": "^0.18",
"vuex": "^3.1.0"
Спасибо!
MODIFIED :
Поиск решения при входе в системуМне нужен токен, который я получил в файле cookie 'external_token'
const headers = {
'Content-Type': 'application/json',
'X-Auth-Token': getCookie('external_token'),
'Access-Control-Allow-Origin' : '*',
"Access-Control-Allow-Methods": "GET",
};
axios.get(user_details_url, headers)
.then((response) => {
...
})
.catch((err) =>{
})
Но я получил ошибку в консоли:
Access to XMLHttpRequest at 'http://remoteserver.com/api/user' from origin 'http://local-wiznext.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
, где remoteserver.com - удаленный сервер с API и http://local -wiznext.com - это мой локальный сервер, который я разрабатываю на
В поисках решения я нашел несколько добавочных параметров для добавления в заголовок моего запроса axios:
const headers = {
'Content-Type': 'application/json',
'X-Auth-Token': getCookie('external_token'),
'Access-Control-Allow-Origin' : '*',
"Access-Control-Allow-Methods": "GET",
'crossDomain': true,
'dataType': 'jsonp',
};
// axios.get(url, {headers})
НоЯ получил ту же ошибку CORS.Если есть способ исправить эту ошибку и запустить запрос?
MODIFIED # 2:
Администратор моего сервера использовал эту опцию https://support.cloudways.com/enable-cors-headers/ и включилCORS заголовки и перезапускает Debian, но я все еще получаю ошибки CORS.Есть идеи, как решить проблему?