Что работает:
- Файл cookie установлен и передается правильно при тестировании в Chrome.
- В других браузерах файл cookie настроен правильно из /callback конечная точка, но при перенаправлении на внешний интерфейс (маршрут /dashboard) последующие запросы не содержат файл cookie.
- При отправке запроса типа /random на серверную часть файл cookie устанавливается правильно, но по какой-то причине res.redirect() предотвращает передачу файла cookie во внешний интерфейс.

Нет файлов cookie при перенаправлении на /dashboard:

Файлы cookie устанавливаются при посещении /xyz на серверной стороне:

Вот мой код:
Внутри /user/oauth/callback:
Код: Выделить всё
res.cookie("oauth_token", accessToken, {
maxAge: 0.95 * 60 * 60 * 1000,
httpOnly: true,
sameSite: "none",
secure: true,
});
res.redirect(`${env.FRONTEND_URL}/dashboard`);
Код: Выделить всё
app.use(
cors({
origin: env.FRONTEND_URL,
credentials: true,
methods: ["GET", "POST", "PUT", "DELETE", "OPTIONS"],
allowedHeaders: ["Content-Type", "Authorization"],
})
);
app.use(cookieParser());
1. Перенаправление с использованием JavaScript
Посмотрел https://github.com/expressjs/express/issues/4416
Код: Выделить всё
res.cookie("oauth_token", accessToken, {
maxAge: 0.95 * 60 * 60 * 1000,
httpOnly: true,
sameSite: "none",
secure: true,
});
res.send(`
Redirecting...
window.location.replace("${env.FRONTEND_URL}/dashboard");
`);
Код: Выделить всё
res.cookie("oauth_token", accessToken, {
maxAge: 0.95 * 60 * 60 * 1000,
httpOnly: true,
sameSite: "none",
secure: true,
domain: "frontend.com",
});
Код: Выделить всё
expires: new Date(Date.now() + 24 * 60 * 60 * 1000)
Подробнее здесь: https://stackoverflow.com/questions/798 ... -in-chrome
Мобильная версия