Was funktioniert:
- Das Cookie wird korrekt gesetzt und übergeben, wenn es in Chrome getestet wird.
- In anderen Browsern scheint das Cookie korrekt gesetzt zu sein /callback-Endpunkt, aber bei der Weiterleitung an das Frontend (die /dashboard-Route) enthalten nachfolgende Anfragen das Cookie nicht.
- Beim Senden einer Anfrage wie /random am Backend ist das Cookie korrekt gesetzt, aber aus irgendeinem Grund verhindert res.redirect(), dass das Cookie an das Frontend übertragen wird.

Kein Cookie bei Weiterleitung zu /dashboard:

Cookie wird beim Besuch von /xyz im Backend gesetzt:

Hier ist mein Code:
Innerhalb von /user/oauth/callback:
Code: Select all
res.cookie("oauth_token", accessToken, {
maxAge: 0.95 * 60 * 60 * 1000,
httpOnly: true,
sameSite: "none",
secure: true,
});
res.redirect(`${env.FRONTEND_URL}/dashboard`);
Code: Select all
app.use(
cors({
origin: env.FRONTEND_URL,
credentials: true,
methods: ["GET", "POST", "PUT", "DELETE", "OPTIONS"],
allowedHeaders: ["Content-Type", "Authorization"],
})
);
app.use(cookieParser());
1. Weiterleitung mit JavaScript
Angesehen unter https://github.com/expressjs/express/issues/4416
Code: Select all
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");
`);
Code: Select all
res.cookie("oauth_token", accessToken, {
maxAge: 0.95 * 60 * 60 * 1000,
httpOnly: true,
sameSite: "none",
secure: true,
domain: "frontend.com",
});
Code: Select all
expires: new Date(Date.now() + 24 * 60 * 60 * 1000)
Mobile version