fix(logs): log error cause when object, sign in oidc debug messages (#3054)
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com>
This commit is contained in:
@@ -13,6 +13,7 @@ import { extractProfileName } from "./providers/oidc/oidc-provider";
|
|||||||
|
|
||||||
export const createSignInEventHandler = (db: Database): Exclude<NextAuthConfig["events"], undefined>["signIn"] => {
|
export const createSignInEventHandler = (db: Database): Exclude<NextAuthConfig["events"], undefined>["signIn"] => {
|
||||||
return async ({ user, profile }) => {
|
return async ({ user, profile }) => {
|
||||||
|
logger.debug(`SignIn EventHandler for user: ${JSON.stringify(user)} . profile: ${JSON.stringify(profile)}`);
|
||||||
if (!user.id) throw new Error("User ID is missing");
|
if (!user.id) throw new Error("User ID is missing");
|
||||||
|
|
||||||
const dbUser = await db.query.users.findFirst({
|
const dbUser = await db.query.users.findFirst({
|
||||||
@@ -28,11 +29,13 @@ export const createSignInEventHandler = (db: Database): Exclude<NextAuthConfig["
|
|||||||
const groupsKey = env.AUTH_OIDC_GROUPS_ATTRIBUTE;
|
const groupsKey = env.AUTH_OIDC_GROUPS_ATTRIBUTE;
|
||||||
// Groups from oidc provider are provided from the profile, it's not typed.
|
// Groups from oidc provider are provided from the profile, it's not typed.
|
||||||
if (profile && groupsKey in profile && Array.isArray(profile[groupsKey])) {
|
if (profile && groupsKey in profile && Array.isArray(profile[groupsKey])) {
|
||||||
|
logger.debug(`Using profile groups (${groupsKey}): ${JSON.stringify(profile[groupsKey])}`);
|
||||||
await synchronizeGroupsWithExternalForUserAsync(db, user.id, profile[groupsKey] as string[]);
|
await synchronizeGroupsWithExternalForUserAsync(db, user.id, profile[groupsKey] as string[]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// In ldap-authroization we return the groups from ldap, it's not typed.
|
// In ldap-authroization we return the groups from ldap, it's not typed.
|
||||||
if ("groups" in user && Array.isArray(user.groups)) {
|
if ("groups" in user && Array.isArray(user.groups)) {
|
||||||
|
logger.debug(`Using profile groups: ${JSON.stringify(user.groups)}`);
|
||||||
await synchronizeGroupsWithExternalForUserAsync(db, user.id, user.groups as string[]);
|
await synchronizeGroupsWithExternalForUserAsync(db, user.id, user.groups as string[]);
|
||||||
}
|
}
|
||||||
await addUserToEveryoneGroupIfNotMemberAsync(db, user.id);
|
await addUserToEveryoneGroupIfNotMemberAsync(db, user.id);
|
||||||
|
|||||||
@@ -22,6 +22,10 @@ export const formatErrorCause = (cause: unknown, iteration = 0): string => {
|
|||||||
return `\ncaused by ${formatErrorTitle(cause)}\n${formatErrorStack(cause.stack)}${formatErrorCause(cause.cause, iteration + 1)}`;
|
return `\ncaused by ${formatErrorTitle(cause)}\n${formatErrorStack(cause.stack)}${formatErrorCause(cause.cause, iteration + 1)}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (cause instanceof Object) {
|
||||||
|
return `\ncaused by ${JSON.stringify(cause)}`;
|
||||||
|
}
|
||||||
|
|
||||||
return `\ncaused by ${cause as string}`;
|
return `\ncaused by ${cause as string}`;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user