Frontend Session extern starten

Gesperrt
martin2002
Beiträge: 41
Registriert: Fr 31. Okt 2003, 02:16
Wohnort: Potsdam
Kontaktdaten:

Frontend Session extern starten

Beitrag von martin2002 »

Hi.

Ich habe auf dem gleichen Webserver Contenido und das ELearning Sytem Moodle laufen. Ich hab für Moodle ein Authplugin geschrieben, damit man sich dort via Contenido Frontend User anmelden kann.
Soweit so gut... Beim ersten Login sollen die Benutzer Kennwort und weitere Daten einstellen. Dazu hab ich im Frontend eine Seite gebaut (via Modul) für die Profilverwaltung, diese wird von Moodle beim ersten Login aufgerufen.
Ich würde jetzt noch gern das Feature einbauen, dass sich der Benutzer nicht doppelt einloggen muss. Moodle soll also beim Login schon die Frontend Session mit initialisieren.

Reicht es hierfür einfach im Cookie die Parameter zu setzen, die auch die Contenido_Frontend_Session Klasse einträgt und zusätzlich ein Array $auth mit "uid" und "uname" im Cookie zu registrienen? Oder würde Contenido das nicht akzeptieren weil die Session dann noch nicht in der Datenbank abgelegt ist?

Ich verwende hiefür Contenido 4.8.7

Am sichersten wäre es wohl die entsprechenden Klassen im Authplugin von Moodle zu instanzieren und sie mit den Daten zu füttern. Das überschreibt mir allerdings einige Variablen in Moodle und es läuft dann nicht mehr. Mir ist hier keine gute Lösung eingefallen, wie ich die Variablen rette und anschließend wiederherstelle. Ich benutze deshalb auch direkt die Datenbank zur Bestätigung der Logininformationen.

Hat jemand einen Tipp?

Greets,
Martin.
Planung ist die Ersetzung des Zufalls durch den Irrtum ;-)
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

ad. mit initialisieren...
sieh dir die front_content.php zu beginn an...
da müsste der code stehen wie eine frontend_session gestartet wird...
*** make your own tools (wishlist :: thx)
malsdgtac
Beiträge: 717
Registriert: Fr 12. Mär 2004, 15:50
Kontaktdaten:

Beitrag von malsdgtac »

Hallo Martin2002,

ich weiß ja nicht, ob du schon eine Lösung hast. Ich habe soeben auch so etwas ähnliches gebraucht und habe es folgend gelöst:

Code: Alles auswählen

$contenido_path = "../../contenido/";
$load_lang		= "1";
$load_client	= "1"; 
include_once ($contenido_path."includes/startup.php");
cInclude("includes", "functions.con.php");
page_open(array ('sess' => 'Contenido_Frontend_Session', 'auth' => 'Contenido_Frontend_Challenge_Crypt_Auth', 'perm' => 'Contenido_Perm'));
 
contenido_path, load_lang und load_client, sind Angaben die in der config.php stehen. Da ich die Datei aus einem Unterordner aufrufe, funktionieren die Pfadangaben nicht mehr, daher habe ich die Angaben direkt in die Datei übernommen.

Mit

Code: Alles auswählen

$auth->auth["uid"]
bekommst du dann die NutzerUID ausgegeben. Gibt es keine wird "nobody" ausgegeben.
Gesperrt