+12








fcd7c979df
Co-authored-by: Artur <145776561+arturict@users.noreply.github.com> Co-authored-by: arturict <arturict@users.noreply.github.com> Co-authored-by: Thomas <thomas@ajnart.fr> Co-authored-by: Afonso Jorge Ramos <afonsojorgeramos@gmail.com> Co-authored-by: Danura30082 <danura30082+github@gmail.com> Co-authored-by: Kushie <122986913+kushiemoon-dev@users.noreply.github.com> Co-authored-by: ajnart <thomas@ajnart.fr> Co-authored-by: ajnart <thomas@ajnart.dev> Co-authored-by: chenjun <chenjun@foxmail.com> Co-authored-by: Wikibear <wikibear@users.noreply.github.com> Co-authored-by: Bergasha <bergasha@gmail.com> Co-authored-by: leafyelin <43306196+leafyelin@users.noreply.github.com> Co-authored-by: Lucas Araujo <lucas.lra@gmail.com> Co-authored-by: GreenMonito <86085570+GreenMonito@users.noreply.github.com> Co-authored-by: Nerdy-Technician <roffo@nerdy-technician.social> Co-authored-by: Jun <34545896+jcstrong@users.noreply.github.com> Co-authored-by: Edmond Abraham <54119952+gitedmond@users.noreply.github.com> Co-authored-by: thrawnx <tight.bulb9384@fastmail.com> Co-authored-by: Chris <58918656+nordada@users.noreply.github.com> Co-authored-by: yi111 <153097222+Yi-111-a@users.noreply.github.com> Co-authored-by: Yanis <naamaneyanis@gmail.com> Co-authored-by: Wikibear <me@sej.de> Co-authored-by: alessiottavo <93441886+alessiottavo@users.noreply.github.com>
24 lines
906 B
TypeScript
24 lines
906 B
TypeScript
import type { Profile } from "@auth/core/types";
|
|
|
|
import { env } from "../../env";
|
|
|
|
export const getProfileValueByPath = (profile: Profile, path: string): unknown => {
|
|
return path.split(".").reduce<unknown>((value, key) => {
|
|
if (typeof value !== "object" || value === null || !Object.hasOwn(value, key)) {
|
|
return undefined;
|
|
}
|
|
|
|
return (value as Record<string, unknown>)[key];
|
|
}, profile);
|
|
};
|
|
|
|
export const extractProfileName = (profile: Profile): string | undefined => {
|
|
if (!env.AUTH_OIDC_NAME_ATTRIBUTE_OVERWRITE) {
|
|
// Use the name as the username if the preferred_username is an email address
|
|
return (profile.preferred_username?.includes("@") ? profile.name : profile.preferred_username) ?? undefined;
|
|
}
|
|
|
|
const profileName = getProfileValueByPath(profile, env.AUTH_OIDC_NAME_ATTRIBUTE_OVERWRITE);
|
|
return typeof profileName === "string" ? profileName : undefined;
|
|
};
|