Contao Konferenz & College 2019 in Duisburg - JETZT TICKET SICHERN!
Ergebnis 1 bis 3 von 3

Thema: Login/Session für Shibboleth-Nutzer erzeugen

  1. #1
    Contao-Nutzer
    Registriert seit
    07.08.2018.
    Beiträge
    5

    Beitrag Login/Session für Shibboleth-Nutzer erzeugen

    Wir wollen parallel zur normalen Registrierung auch das Login mit Shibboleth auf unserer Seite implementieren. Shibboleth steht auch schon und übergibt die nötigen Daten an die Seite. Daraus erzeuge ich einen neuen Nutzer in der Datenbank (sofern noch nicht vorhanden) und gebe ihm eine Session (via PHP). Jedoch konnte ich Contao bislang nicht dazu bringen, den Nutzer auch als solchen zu erkennen.

    Aktuell setze ich in der tl_member: tstamp, firstname, lastname, email, groups, login, username, password und in der tl_session: pid, tstamp, name, sessionID, ip, hash

    Wie kann ich Contao sagen, dem Nutzer eine Session zu geben, ohne dass nocheinmal das Passwort validiert werden muss oder ähnliches?

  2. #2
    Contao-Nutzer
    Registriert seit
    07.08.2018.
    Beiträge
    5

    Standard

    Nach einigem Probieren habe ich Contao dazu gebracht, die Session zu eröffnen. Die Variable $intId vom User muss gesetzt sein, und dann muss die Methode generateSession() aufgerufen werden. Da beides protected ist, kommt man nicht direkt ran.
    Ich arbeite nun an einer Extension, die direkt von User erbt ('class Shib extends User''), leider weiß ich gerade nicht, wo im FE_MOD die bei der config dann hingehört und wie ich die Klasse in den PHP-Code der Seite importieren kann (User importiert man ja via $this->import('FrontendUser','User'); ).

  3. #3
    Contao-Nutzer
    Registriert seit
    07.08.2018.
    Beiträge
    5

    Standard

    Ich versuche derzeit, die Extension im Frontend zu importieren, aber Contao bricht mit Warnung und Fehlermeldung weg:
    "PHP Warning: in_array() expects parameter 2 to be array, null given in <file>"
    "PHP Fatal error: Uncaught exception 'Error' with message 'Class 'ShibAuth' not found'"
    Auslösende Zeile ist $this->import('ShibAuth','User');

    config.php
    Code:
    $GLOBALS['FE_MOD']['user'] = 'ShibAuth';
    autoload.php
    Code:
    ClassLoader::addClasses(array
    [
        'ShibAuth' => 'system/modules/shib-auth/classes/ShibAuth.php',
    ]);
    ShibAuth.php
    Code:
    class ShibAuth extends \User {
    	
    	...
    	
    }
    Weiß jemand, warum ich die Klasse nicht importieren kann?

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •