Уничтожение сеанса выхода Passport.js работает с POSTMAN, но не с приложением React.Как это исправить - PullRequest
0 голосов
/ 23 декабря 2018

У меня есть экспресс-бэкэнд и я пытаюсь настроить паспортную аутентификацию.Процесс входа в систему работает нормально, а токен сеанса сохраняется в виде файла cookie.При выходе из системы clearCookies не уничтожает файлы cookie в браузере.Однако, когда я звоню через Почтальон, процесс работает очень хорошо.

Я установил { withCredentials: true } в конфигурации Axios и { credentials: true } в настройках CORS в бэкэнде.Я также установил путь в параметрах clearCookies.

// BACKEND LOGOUT
exports._logout = (req, res) => {
  req.session.destroy(err => {
    if (err) res.status(422).send(err);
    req.logout();
    res.clearCookie("connect.sid", {domain: 'localhost', path: 
'/'}).status(200).send('Logged out!.')
  });
};

// FRONTEND LOGOUT (REACT/REDUX)
export function logOut() {
return {
    type: 'LOG_OUT',
    payload: new Promise((resolve, reject) => {
        axios
            .post(process.env.ACCOUNT_HOST + `/logout`, {withCredentials: true})
            .then(response => {
                console.log(response);
                resolve(response.data);
            })
            .catch(error => {
                notification.error({
                    message: 'Log In Error',
                    description: error.message,
                    duration: null
                });
                reject(error);
            });
    })
};
}

Когда я вызываю конечную точку с помощью Postman, она очищает куки, а функция isAuth возвращает ожидаемое.Есть идеи, почему он не очищает куки в браузере?Спасибо.

...