@GaserV

Почему реакт достает токен из куков лишь однажды?

Вопрос скорее всего не верно формулирован поэтому объясню подробнее. Нашел баг у себя в проекте. Я залогинился. Токен в ответе засэтился в куках. После логина идет редирект где выводятся пользователи, но запрос идет без токена. Но после того, как я перезагрузил страницу - запрос пошел с токеном и юзеры вернулись. И в обратном направлении. Я просто удаляю токен из куков и перехожу на любую страницу (где не нужен токен). Далее возвращаюсь снова на предыдущую (где нужен токен) и запрос все равно идет с токеном, который я удалил из куков. Перезагружаю страницу снова - запрос идет без токена и соответственно 401 ошибка. Почему так происходит? Я написал хэлпер для ГЕТ\ПОСТ запросов, где он сэтится и предполагаю что причина в нем:

import axios from 'axios'
import { Cookies } from 'react-cookie'

const cookies = new Cookies()
const token = cookies.get('frl_jwt_token')

const makeParams = params => ({
	headers: {
		Authorization: `Bearer ${token}`,
	},
	params: { ...params },
})

const ajax = {}

ajax.get = (url, params) => axios.get(url, makeParams(params))
ajax.post = (url, data) => axios.post(url, data, makeParams())

export default ajax
  • Вопрос задан
  • 63 просмотра
Решения вопроса 1
rockon404
@rockon404 Куратор тега React
Frontend Developer
Ваши пояснения больше путают, чем помогают. Вопрос не понял, но думаю дело в том, что токен достаете при инициализации. А надо дергать при каждом вызове makeParams:
const makeParams = params => ({
  headers: {
    Authorization: `Bearer ${cookies.get('frl_jwt_token')}`,
  },
  params: { ...params },
})
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы