fix: last auth provider cookie (wrong domain)

This commit is contained in:
Carl-Gerhard Lindesvärd
2026-02-27 23:41:38 +01:00
parent 1272466235
commit b801d6a8ef
3 changed files with 22 additions and 16 deletions

View File

@@ -5,6 +5,7 @@ import {
github, github,
google, google,
type OAuth2Tokens, type OAuth2Tokens,
setLastAuthProviderCookie,
setSessionTokenCookie, setSessionTokenCookie,
} from '@openpanel/auth'; } from '@openpanel/auth';
import { type Account, connectUserToOrganization, db } from '@openpanel/db'; import { type Account, connectUserToOrganization, db } from '@openpanel/db';
@@ -76,11 +77,10 @@ async function handleExistingUser({
sessionToken, sessionToken,
session.expiresAt session.expiresAt
); );
reply.setCookie('last-auth-provider', providerName, { setLastAuthProviderCookie(
maxAge: 60 * 60 * 24 * 365, (...args) => reply.setCookie(...args),
path: '/', providerName
sameSite: 'lax', );
});
return reply.redirect( return reply.redirect(
process.env.DASHBOARD_URL || process.env.NEXT_PUBLIC_DASHBOARD_URL! process.env.DASHBOARD_URL || process.env.NEXT_PUBLIC_DASHBOARD_URL!
); );
@@ -145,11 +145,10 @@ async function handleNewUser({
sessionToken, sessionToken,
session.expiresAt session.expiresAt
); );
reply.setCookie('last-auth-provider', providerName, { setLastAuthProviderCookie(
maxAge: 60 * 60 * 24 * 365, (...args) => reply.setCookie(...args),
path: '/', providerName
sameSite: 'lax', );
});
return reply.redirect( return reply.redirect(
process.env.DASHBOARD_URL || process.env.NEXT_PUBLIC_DASHBOARD_URL! process.env.DASHBOARD_URL || process.env.NEXT_PUBLIC_DASHBOARD_URL!
); );

View File

@@ -7,7 +7,17 @@ export function setSessionTokenCookie(
expiresAt: Date expiresAt: Date
): void { ): void {
setCookie('session', token, { setCookie('session', token, {
maxAge: Math.floor((expiresAt.getTime() - new Date().getTime()) / 1000), maxAge: Math.floor((expiresAt.getTime() - Date.now()) / 1000),
...COOKIE_OPTIONS,
});
}
export function setLastAuthProviderCookie(
setCookie: ISetCookie,
provider: string
): void {
setCookie('last-auth-provider', provider, {
maxAge: 60 * 60 * 24 * 365,
...COOKIE_OPTIONS, ...COOKIE_OPTIONS,
}); });
} }

View File

@@ -8,6 +8,7 @@ import {
google, google,
hashPassword, hashPassword,
invalidateSession, invalidateSession,
setLastAuthProviderCookie,
setSessionTokenCookie, setSessionTokenCookie,
validateSessionToken, validateSessionToken,
verifyPasswordHash, verifyPasswordHash,
@@ -225,11 +226,7 @@ export const authRouter = createTRPCRouter({
const token = generateSessionToken(); const token = generateSessionToken();
const session = await createSession(token, user.id); const session = await createSession(token, user.id);
setSessionTokenCookie(ctx.setCookie, token, session.expiresAt); setSessionTokenCookie(ctx.setCookie, token, session.expiresAt);
ctx.setCookie('last-auth-provider', 'email', { setLastAuthProviderCookie(ctx.setCookie, 'email');
maxAge: 60 * 60 * 24 * 365,
path: '/',
sameSite: 'lax',
});
return { return {
type: 'email', type: 'email',
}; };