This commit is contained in:
Zai Shi 2025-05-20 10:07:46 -07:00
parent 1e70ec1afd
commit 8f8590cdd4
4 changed files with 6 additions and 4 deletions

View File

@ -19,6 +19,7 @@ function getOidcCallbackPromise() {
const oidc = await createOidcProvider({
id: "stack-preconfigured-idp:integrations/neon",
baseUrl: idpBaseUrl.toString(),
clientInteractionUrl: new URL(`/integrations/neon/confirm`, getEnvVariable("NEXT_PUBLIC_STACK_DASHBOARD_URL")).toString(),
});
return oidc.callback();
})();

View File

@ -162,7 +162,7 @@ function createPrismaAdapter(idpId: string) {
});
}
export async function createOidcProvider(options: { id: string, baseUrl: string }) {
export async function createOidcProvider(options: { id: string, baseUrl: string, clientInteractionUrl: string }) {
const privateJwk = await getPrivateJwk(getPerAudienceSecret({
audience: `https://idp-jwk-audience.stack-auth.com/${encodeURIComponent(options.id)}`,
secret: getEnvVariable("STACK_SERVER_SECRET"),
@ -300,7 +300,7 @@ export async function createOidcProvider(options: { id: string, baseUrl: string
const authorizationCode = `${ctx.request.query.code}`;
const authorizationCodeObj = await prismaClient.projectWrapperCodes.findUnique({
where: {
idpId: "stack-preconfigured-idp:integrations/neon",
idpId: options.id,
authorizationCode,
},
});
@ -383,7 +383,7 @@ export async function createOidcProvider(options: { id: string, baseUrl: string
}
const uid = ctx.path.split('/')[2];
const interactionUrl = new URL(`/integrations/neon/confirm`, getEnvVariable("NEXT_PUBLIC_STACK_DASHBOARD_URL"));
const interactionUrl = new URL(options.clientInteractionUrl);
interactionUrl.searchParams.set("interaction_uid", uid);
if (neonProjectName) {
interactionUrl.searchParams.set("neon_project_name", neonProjectName);

View File

@ -19,6 +19,7 @@ function getOidcCallbackPromise() {
const oidc = await createOidcProvider({
id: "stack-preconfigured-idp:integrations",
baseUrl: idpBaseUrl.toString(),
clientInteractionUrl: new URL(`/integrations/confirm`, getEnvVariable("NEXT_PUBLIC_STACK_DASHBOARD_URL")).toString(),
});
return oidc.callback();
})();

View File

@ -91,7 +91,7 @@ export const POST = createSmartRouteHandler({
project_id: neonProvisionedProject.projectId,
neon_client_id: neonProvisionedProject.neonClientId,
},
callbackUrl: new URL("/integrations/neon/projects/transfer/confirm", getEnvVariable("NEXT_PUBLIC_STACK_DASHBOARD_URL")),
callbackUrl: new URL("/integrations/projects/transfer/confirm", getEnvVariable("NEXT_PUBLIC_STACK_DASHBOARD_URL")),
expiresInMs: 1000 * 60 * 60,
});