🔐 Login mit Authentik
– oder mit Benutzername/Passwort –
get_error_message() ); } // Userinfo holen $userinfo = authentik_get_userinfo( $tokens['access_token'] ); if ( is_wp_error( $userinfo ) || empty( $userinfo ) ) { authentik_login_error( 'Benutzerinformationen konnten nicht abgerufen werden.' ); } // User finden oder erstellen $user = authentik_find_or_create_user( $userinfo ); if ( is_wp_error( $user ) ) { authentik_login_error( $user->get_error_message() ); } // Einloggen wp_set_auth_cookie( $user->ID, true ); wp_set_current_user( $user->ID ); do_action( 'wp_login', $user->user_login, $user ); // Weiterleitung $redirect = admin_url(); if ( ! user_can( $user->ID, 'manage_options' ) ) { $redirect = home_url(); } wp_redirect( $redirect ); exit; } function authentik_login_error( $message ) { wp_redirect( wp_login_url() . '?authentik_error=' . urlencode( $message ) ); exit; } // Fehlermeldung anzeigen add_filter( 'login_message', 'authentik_show_login_message' ); function authentik_show_login_message( $message ) { if ( ! empty( $_GET['authentik_error'] ) ) { $message .= '
' . esc_html( urldecode( $_GET['authentik_error'] ) ) . '
'; } return $message; } // Frontend: Verknüpfungs-Button für eingeloggte User (Shortcode) add_shortcode( 'authentik_link_account', 'authentik_link_account_shortcode' ); function authentik_link_account_shortcode() { if ( ! is_user_logged_in() ) return ''; $user = wp_get_current_user(); $subject = get_user_meta( $user->ID, 'authentik_subject', true ); ob_start(); if ( $subject ) { echo '

✓ Dein Konto ist mit Authentik verknüpft.

'; } else { $url = authentik_build_login_url(); echo 'Konto mit Authentik verknüpfen'; } return ob_get_clean(); }