Files
rfid-database/src/lib/auth/oidc.ts
T
Cursor Agent 96c6df2fff Fix OIDC email: load Authelia profile from UserInfo
Auth.js OIDC only reads ID-token claims by default; Authelia puts
email on UserInfo. Set idToken:false, harden claim extraction, and
document an optional Authelia claims_policy.
2026-08-24 04:25:50 +00:00

28 lines
762 B
TypeScript

export function isOidcConfigured(): boolean {
return Boolean(
process.env.AUTH_OIDC_ISSUER?.trim() &&
process.env.AUTH_OIDC_CLIENT_ID?.trim() &&
process.env.AUTH_OIDC_CLIENT_SECRET?.trim()
);
}
/** Pull an email out of common OIDC claim shapes (Authelia, Keycloak, etc.). */
export function emailFromOidcProfile(
profile: Record<string, unknown>
): string | null {
const candidates = [
profile.email,
profile.preferred_username,
profile.upn,
profile.mail,
(profile.user as { email?: unknown } | undefined)?.email,
];
for (const value of candidates) {
if (typeof value !== "string") continue;
const trimmed = value.trim();
if (trimmed.includes("@")) return trimmed.toLowerCase();
}
return null;
}