| import { NextResponse } from "next/server"; |
| import { cookies } from "next/headers"; |
| import { getSettings } from "@/lib/localDb"; |
| import { isOidcConfigured } from "@/lib/auth/oidc"; |
| import { getDashboardAuthSession } from "@/lib/auth/dashboardSession"; |
|
|
| export async function GET() { |
| try { |
| const settings = await getSettings(); |
| const cookieStore = await cookies(); |
| const session = await getDashboardAuthSession(cookieStore.get("auth_token")?.value); |
| const requireLogin = settings.requireLogin !== false; |
| const authMode = settings.authMode || "password"; |
| const oidcName = String(session?.oidcName || "").trim(); |
| const oidcEmail = String(session?.oidcEmail || "").trim(); |
| const displayName = oidcName || oidcEmail || (session?.oidc ? "OIDC user" : "Password user"); |
| const loginMethod = session?.oidc ? "OIDC" : "Password"; |
|
|
| return NextResponse.json({ |
| requireLogin, |
| authMode, |
| oidcConfigured: isOidcConfigured(settings), |
| oidcLoginLabel: (settings.oidcLoginLabel || "Sign in with OIDC").trim() || "Sign in with OIDC", |
| hasPassword: !!settings.password, |
| displayName, |
| loginMethod, |
| oidcName: oidcName || null, |
| oidcEmail: oidcEmail || null, |
| oidcLogin: !!session?.oidc, |
| }); |
| } catch { |
| return NextResponse.json({ |
| requireLogin: true, |
| authMode: "password", |
| oidcConfigured: false, |
| oidcLoginLabel: "Sign in with OIDC", |
| hasPassword: false, |
| displayName: "Password user", |
| loginMethod: "Password", |
| oidcName: null, |
| oidcEmail: null, |
| oidcLogin: false, |
| }); |
| } |
| } |
|
|