web-dev-qa-db-de.com

Wie kann der Benutzer Sitzungsdaten eingeben und geleitet werden?

Ich habe Anwendungen, die ich geschrieben habe, die SAML und dann eine Benutzerdatenbank verwenden, um Berechtigungen für sie alle zu definieren. Sobald sich ein Benutzer über unser SSO anmeldet, kann er die Anwendungen mit den festgelegten Berechtigungen verwenden.

Ich möchte dasselbe für WP tun. Wo soll ich anfangen? Ich möchte, dass WP ihren Sitzungsbenutzernamen erkennt, bevor sie sich anmelden und dann ein WordPress-Cookie erstellen. Ich habe ein Root-Cookie-Plugin gesehen, das die Benutzerinformationen an andere WP-Sites weiterleitet, aber wie wäre es, wenn Sie zunächst den Sitzungsbenutzernamen erhalten?

Ich möchte, dass Benutzer zur Website WP kommen und sehen, dass sie mit ihrem Benutzernamen angemeldet sind, aber ich bin auch für andere Möglichkeiten offen.

Momentan wird mir für die SAML-Authentifizierung Folgendes gegeben:

  • app-URL: Weiterleitung zur SSO-Anmeldung
  • app key: zu verschlüsselnder Hash
  • uid
  • vorname
  • nachname
  • email
  • zeit (POST-Zeit wird für die Validierung verwendet)

Hinweis: Ich habe gerade versucht, das SAML2-Plugin für WP zu verwenden. Erstens ist es ein Beta-Plugin und sehr verwirrend. Zweitens erhalte ich immer wieder den schwerwiegenden Fehler, dass IDP-Informationen nicht gefunden werden können.

Möchte wirklich nur die Session nehmen uid ich habe ein Log eine Person die das benutzt.

6
STing

Ich habe ein wirklich einfaches Skript, das verlinkt ist https://wordpress.stackexchange.com/questions/154802/what-do-i-need-to-do-to-fully-integrate-a-custom-session-login -in-wp .

Grundsätzlich gehe ich davon aus, dass Ihr SSO sicher ist, dass Sie die Benutzer in Ihrer Datenbank haben und dass Sie die Sitzung nur zur Authentifizierung am Leben erhalten müssen. Aus meiner Sicht möchte ich den Benutzer nur an WP übergeben und den Rest vom WP Benutzersystem erledigen lassen. Hoffe, dies hilft anderen beim Anmelden in Sitzungen.

0
STing

Wenn du mit Sessions arbeiten willst, dann starte dies zuerst in deinem Plugin Theme.

add_action( 'init', 'my_start_session' );

function my_start_session() {

    if ( session_id() )
        return;

    @session_cache_limiter('private, must-revalidate'); //private_no_expire
    @session_cache_expire(0);
    @session_start();
}

Alternativ nutzen Sie die Bibliothek von Eric Mann: WP Session Manager , auch sein Tutorial .

2
bueltge