mirror of
https://github.com/zitadel/zitadel.git
synced 2025-08-12 14:17:32 +00:00
change audience for self service services
This commit is contained in:
@@ -4,10 +4,10 @@ import { getInstanceByHost } from "./zitadel";
|
|||||||
export async function getInstanceUrl(host: string): Promise<string> {
|
export async function getInstanceUrl(host: string): Promise<string> {
|
||||||
const [hostname, port] = host.split(":");
|
const [hostname, port] = host.split(":");
|
||||||
|
|
||||||
if (hostname === "localhost") {
|
// if (hostname === "localhost") {
|
||||||
console.log("fallback to ZITADEL_API_URL");
|
// console.log("fallback to ZITADEL_API_URL");
|
||||||
return process.env.ZITADEL_API_URL || "";
|
// return process.env.ZITADEL_API_URL || "";
|
||||||
}
|
// }
|
||||||
|
|
||||||
const instance = await getInstanceByHost(host).catch((error) => {
|
const instance = await getInstanceByHost(host).catch((error) => {
|
||||||
console.error(`Could not get instance by host ${host}`, error);
|
console.error(`Could not get instance by host ${host}`, error);
|
||||||
|
@@ -3,16 +3,30 @@
|
|||||||
import { createServerTransport } from "@zitadel/client/node";
|
import { createServerTransport } from "@zitadel/client/node";
|
||||||
import { createUserServiceClient } from "@zitadel/client/v2";
|
import { createUserServiceClient } from "@zitadel/client/v2";
|
||||||
import { headers } from "next/headers";
|
import { headers } from "next/headers";
|
||||||
|
import { getInstanceUrl } from "./api";
|
||||||
import { getSessionCookieById } from "./cookies";
|
import { getSessionCookieById } from "./cookies";
|
||||||
import { getSession } from "./zitadel";
|
import { getSession } from "./zitadel";
|
||||||
|
|
||||||
const transport = (token: string) =>
|
const transport = async (host: string, token: string) => {
|
||||||
createServerTransport(token, {
|
let instanceUrl;
|
||||||
baseUrl: process.env.ZITADEL_API_URL!,
|
try {
|
||||||
});
|
instanceUrl = await getInstanceUrl(host);
|
||||||
|
} catch (error) {
|
||||||
|
console.error(
|
||||||
|
`Could not get instance url for ${host}, fallback to ZITADEL_API_URL`,
|
||||||
|
error,
|
||||||
|
);
|
||||||
|
instanceUrl = process.env.ZITADEL_API_URL;
|
||||||
|
}
|
||||||
|
|
||||||
const myUserService = (sessionToken: string) => {
|
return createServerTransport(token, {
|
||||||
return createUserServiceClient(transport(sessionToken));
|
baseUrl: instanceUrl,
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
const myUserService = async (host: string, sessionToken: string) => {
|
||||||
|
const transportPromise = await transport(host, sessionToken);
|
||||||
|
return createUserServiceClient(transportPromise);
|
||||||
};
|
};
|
||||||
|
|
||||||
export async function setMyPassword({
|
export async function setMyPassword({
|
||||||
@@ -40,7 +54,7 @@ export async function setMyPassword({
|
|||||||
return { error: "Could not load session" };
|
return { error: "Could not load session" };
|
||||||
}
|
}
|
||||||
|
|
||||||
const service = await myUserService(`${sessionCookie.token}`);
|
const service = await myUserService(host, `${sessionCookie.token}`);
|
||||||
|
|
||||||
if (!session?.factors?.user?.id) {
|
if (!session?.factors?.user?.id) {
|
||||||
return { error: "No user id found in session" };
|
return { error: "No user id found in session" };
|
||||||
|
@@ -28,6 +28,7 @@ import {
|
|||||||
SetPasswordRequestSchema,
|
SetPasswordRequestSchema,
|
||||||
} from "@zitadel/proto/zitadel/user/v2/user_service_pb";
|
} from "@zitadel/proto/zitadel/user/v2/user_service_pb";
|
||||||
import { headers } from "next/headers";
|
import { headers } from "next/headers";
|
||||||
|
import { getInstanceUrl } from "../api";
|
||||||
import { getNextUrl } from "../client";
|
import { getNextUrl } from "../client";
|
||||||
import { getSessionCookieById, getSessionCookieByLoginName } from "../cookies";
|
import { getSessionCookieById, getSessionCookieByLoginName } from "../cookies";
|
||||||
import {
|
import {
|
||||||
@@ -346,15 +347,29 @@ export async function checkSessionAndSetPassword({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
const myUserService = (sessionToken: string) => {
|
const transport = async (host: string, token: string) => {
|
||||||
return createUserServiceClient(
|
let instanceUrl;
|
||||||
createServerTransport(sessionToken, {
|
try {
|
||||||
baseUrl: process.env.ZITADEL_API_URL!,
|
instanceUrl = await getInstanceUrl(host);
|
||||||
}),
|
} catch (error) {
|
||||||
);
|
console.error(
|
||||||
|
`Could not get instance url for ${host}, fallback to ZITADEL_API_URL`,
|
||||||
|
error,
|
||||||
|
);
|
||||||
|
instanceUrl = process.env.ZITADEL_API_URL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return createServerTransport(token, {
|
||||||
|
baseUrl: instanceUrl,
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const selfService = await myUserService(`${sessionCookie.token}`);
|
const myUserService = async (host: string, sessionToken: string) => {
|
||||||
|
const transportPromise = await transport(host, sessionToken);
|
||||||
|
return createUserServiceClient(transportPromise);
|
||||||
|
};
|
||||||
|
|
||||||
|
const selfService = await myUserService(host, `${sessionCookie.token}`);
|
||||||
|
|
||||||
return selfService
|
return selfService
|
||||||
.setPassword(
|
.setPassword(
|
||||||
|
Reference in New Issue
Block a user