handle account select

This commit is contained in:
peintnermax
2024-03-06 13:44:15 +01:00
parent 9e0d9d6c46
commit 6d6372d5c2

View File

@@ -45,15 +45,21 @@ export async function GET(request: NextRequest) {
if (authRequestId && sessionId) { if (authRequestId && sessionId) {
const cookie = sessionCookies.find((cookie) => cookie.id === sessionId); const cookie = sessionCookies.find((cookie) => cookie.id === sessionId);
const session = { if (cookie && cookie.id && cookie.token) {
sessionId: cookie?.id, const session = {
sessionToken: cookie?.token, sessionId: cookie?.id,
}; sessionToken: cookie?.token,
const { callbackUrl } = await createCallback(server, { };
authRequestId, const { callbackUrl } = await createCallback(server, {
session, authRequestId,
}); session,
return NextResponse.redirect(callbackUrl); });
return NextResponse.redirect(callbackUrl);
} else {
const accountsUrl = new URL("/accounts", request.url);
accountsUrl.searchParams.set("authRequestId", authRequestId);
return NextResponse.redirect(accountsUrl);
}
} }
if (authRequestId) { if (authRequestId) {
const { authRequest } = await getAuthRequest(server, { authRequestId }); const { authRequest } = await getAuthRequest(server, { authRequestId });
@@ -85,10 +91,6 @@ export async function GET(request: NextRequest) {
// check for loginHint, userId hint sessions // check for loginHint, userId hint sessions
let selectedSession = findSession(sessions, authRequest); let selectedSession = findSession(sessions, authRequest);
// if (!selectedSession) {
// selectedSession = sessions[0]; // TODO: remove
// }
if (selectedSession && selectedSession.id) { if (selectedSession && selectedSession.id) {
const cookie = sessionCookies.find( const cookie = sessionCookies.find(
(cookie) => cookie.id === selectedSession?.id (cookie) => cookie.id === selectedSession?.id
@@ -106,17 +108,13 @@ export async function GET(request: NextRequest) {
return NextResponse.redirect(callbackUrl); return NextResponse.redirect(callbackUrl);
} else { } else {
const accountsUrl = new URL("/accounts", request.url); const accountsUrl = new URL("/accounts", request.url);
if (authRequest?.id) { accountsUrl.searchParams.set("authRequestId", authRequestId);
accountsUrl.searchParams.set("authRequestId", authRequest?.id);
}
return NextResponse.redirect(accountsUrl); return NextResponse.redirect(accountsUrl);
} }
} else { } else {
const accountsUrl = new URL("/accounts", request.url); const accountsUrl = new URL("/accounts", request.url);
if (authRequest?.id) { accountsUrl.searchParams.set("authRequestId", authRequestId);
accountsUrl.searchParams.set("authRequestId", authRequest?.id);
}
return NextResponse.redirect(accountsUrl); return NextResponse.redirect(accountsUrl);
// return NextResponse.error(); // return NextResponse.error();