provide /sessions endpoint to return json of the current sessions

This commit is contained in:
peintnermax
2024-05-22 13:53:21 +02:00
parent 6c275bb0b6
commit 795c662a5c

View File

@@ -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<Session[]> {
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 });
}