#reactjs #django #axios
#reactjs #django #axios
Вопрос:
Я использую Django Rest Framework для аутентификации и Axios во внешнем интерфейсе. Когда я передаю токен методу axios.get напрямую, он правильно извлекает конечную точку API (getUserInfo), но когда я использую переменную (string) и передаю ее динамически, происходит сбой, и выдается ошибка, описанная выше.
Первый случай: (успешно)
const config = {
headers: { Authorization: 'Bearer <token string>' },
};
await axios.get(URLS.FETCH_USER, config)
Второй случай: (сбой)
const config = {
headers: { Authorization: `Bearer ${accessToken}` },
};
await axios.get(URLS.FETCH_USER, config).etc
Обратите внимание, что токен является свежим и берется непосредственно из запроса на вход postman.
Комментарии:
1.
JSON.stringify
добавит кавычки к токену, просто используйте необработанный токен:Bearer ${accessToken}
2. Я на самом деле тоже пробовал, но все равно терпит неудачу
3. Как
accessToken
определяется и как это выглядит?4. По сути, это номинальный токен JWT, я анализирую его из асинхронного хранилища, он возвращает правильное значение — я проверяю значение val в postman —
5. Можете ли вы добавить код, в котором вы храните и извлекаете токен, к своему вопросу? Вы проверили переменную, чтобы убедиться, что это правильная строка?
Ответ №1:
Проблема заключалась в том, что токен был строкой внутри дополнительных двух кавычек «». Это и было причиной. Я решил это, проанализировав строку следующим образом:
const config = {
headers: { Authorization: `Bearer ${JSON.parse(accessToken)}` },
};