Мне нужно прочитать куки на стороне сервера перед рендерингом - PullRequest
0 голосов
/ 28 октября 2019

Я пытаюсь получить cookie, который я сохраняю (httpOnly), когда пользователь входит в систему. Проблема возникает, когда я восстанавливаю этот cookie со стороны сервера;Я посылаю его, чтобы отреагировать и сохранить в редукторе, но в процессе обновления маршрутизатора похоже, что пользователь не вошел в систему. Какие-либо решения?

Обновление:

экспресс-код:

let token = jwt.sign({
                      id: usuario.dataValues.id,
                      identifier: response.dataValues.email,
                      firma: firma
                    }, 'privatekey', (err, tk) => {
                      if (err) { console.log(err) }
                      let caducidad = 4 * 24 * 3600 * 1000;
                      const options = {
                        httpOnly: true,
                        signed: true,
                        maxAge: caducidad,
                        expires: new Date(Date.now() + caducidad)
                      };
                      res.cookie('token', tk, options).status(200);
                      res.status(200).json({ success: true, tk, user: response.dataValues })
                    })

Реактивная выборка:

export const getCookie = async () => {
 await axios.post('/api/getCookie')
    .then(res => {
        if(res.data.token && res.data.token !== undefined) {
            const user:User = jwtDecode(res.data.token);
            axios.post('/api/comprobarFirma', {id: user.id, firma: user.firma})
                .then(response => {
                    if (response.data.find) {
                        dispatch({type: 'setUser', payload: user});
                        console.log(user);
                    }else{
                        destroyCookie();
                    }
                })
        }else{
            destroyCookie();
        }
    });

};

1 Ответ

0 голосов
/ 28 октября 2019

Исходя из того, что вы описали, вы пытаетесь установить cookie (в какой-то момент), а затем реагируете на визуализацию контента на основе этого cookie (либо пользовательскую информацию, авторизацию или просто отслеживание сеанса с использованием простого jane).

Однако вы говорите что-то вроде «проблема в том, что реакция рендерит маршрутизатор до того, как cookie будет прочитан». React не может прочитать cookie httponly. React по-прежнему является частью структуры javascript. Настройка httponly наCookie, хотя и безопаснее, ограничивает его доступ к браузеру и серверу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...