diff --git a/apps/backend/src/app/api/v1/integrations/neon/oauth/idp/[[...route]]/idp.ts b/apps/backend/src/app/api/v1/integrations/neon/oauth/idp/[[...route]]/idp.ts index 67f317df4..0bae03f74 100644 --- a/apps/backend/src/app/api/v1/integrations/neon/oauth/idp/[[...route]]/idp.ts +++ b/apps/backend/src/app/api/v1/integrations/neon/oauth/idp/[[...route]]/idp.ts @@ -168,9 +168,6 @@ function createPrismaAdapter(idpId: string) { }); } -// TODO: add stateful session management - - export async function createOidcProvider(options: { id: string, baseUrl: string }) { const privateJwk = await getPrivateJwk(getPerAudienceSecret({ audience: `https://idp-jwk-audience.stack-auth.com/${encodeURIComponent(options.id)}`, @@ -186,9 +183,7 @@ export async function createOidcProvider(options: { id: string, baseUrl: string const oidc = new Provider(options.baseUrl, { adapter: createPrismaAdapter(options.id), clients: JSON.parse(getEnvVariable("STACK_NEON_INTEGRATION_CLIENTS_CONFIG", "[]")), - ttl: { - Session: 60, // we always want to ask for login again, though the session needs to survive for a bit during the token exchange - }, + ttl: {}, cookies: { keys: [ await sha512(`oidc-idp-cookie-encryption-key:${getEnvVariable("STACK_SERVER_SECRET")}`), @@ -272,6 +267,22 @@ export async function createOidcProvider(options: { id: string, baseUrl: string ctx.type = 'text/html'; ctx.body = ` +
+