From 795c662a5c01892cd8e9b91bd143a158924ab141 Mon Sep 17 00:00:00 2001 From: peintnermax Date: Wed, 22 May 2024 13:53:21 +0200 Subject: [PATCH] provide /sessions endpoint to return json of the current sessions --- apps/login/src/app/sessions/route.ts | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 apps/login/src/app/sessions/route.ts diff --git a/apps/login/src/app/sessions/route.ts b/apps/login/src/app/sessions/route.ts new file mode 100644 index 00000000000..072275eba74 --- /dev/null +++ b/apps/login/src/app/sessions/route.ts @@ -0,0 +1,24 @@ +import { listSessions, server } from "@/lib/zitadel"; +import { SessionCookie, getAllSessions } from "@/utils/cookies"; +import { Session } from "@zitadel/server"; +import { NextRequest, NextResponse } from "next/server"; + +async function loadSessions(ids: string[]): Promise { + const response = await listSessions( + server, + ids.filter((id: string | undefined) => !!id), + ); + + return response?.sessions ?? []; +} + +export async function GET(request: NextRequest) { + const sessionCookies: SessionCookie[] = await getAllSessions(); + const ids = sessionCookies.map((s) => s.id); + let sessions: Session[] = []; + if (ids && ids.length) { + sessions = await loadSessions(ids); + } + + return NextResponse.json({ sessions }, { status: 500 }); +}