Seite 1 von 1

Erweiterung des Login Moduls

Verfasst: Mi 21. Jan 2015, 12:27
von Peer
Hallo,

ich bin gerade dabei das Contenido mit einem andern System zu kombinieren.
Jetzt bin ich dabei die Schnittstellen zu etablieren und stocke schon bei dem Login.

Ich würde gerne mit dem Standard Login von Contenido 4.9.6

Folgende Action ausführen

Code: Alles auswählen

<?php

//--------------------------------------------------

require_once("VBStApiClient.class.php");

//--------------------------------------------------

$api = new VBStApiClient("http://****", "****");

//--------------------------------------------------
/* Sitzung generieren */
$session_id = $api->call("session", "get");

/* Prüfen ob letzter Aufruf erfolgreich war */
if($api->callSucceeded()) {
	print("Session-Id: ".$session_id."<br>");

	/* Benutzername */
	$username = $_POST["username"];

	/* Kennwort als SHA1 */
	$password = sha1($_POST["password"]);

	/* Benutzer authentifizieren */
	$response = $api->call("user", "auth", array(
		"session" => $session_id,
		"username" => $username,
		"password" => $password
	));

	/* Authentifizierung erfolgreich */
	if($response === true) {
		print("Authentifizierung erfolgreich<br>");

		/* Daten in die Sitzung schreiben */
		$api->call("session", "store", array(
			"session" => $session_id,
			"key" => "beispielschluessel",
			"value" => "beispielwert xy"
		));

		/* Sitzungsdaten abrufen */
		$response = $api->call("session", "dump", array(
			"session" => $session_id
		));

		if($api->callSucceeded()) {
			/* Sitzungsdaten ausgeben */
			var_dump($response);
		} else {
			print("Konnte Sitzungsdaten nicht abrufen<br>");
		}
	} else {
		/* Fehler: Authentifizierung fehlgeschlagen */
		print("Authentifizierung fehlgeschlagen<br>");
		var_dump($api->getError());
	}

	/*
	 * Sitzung wieder löschen
	 *
	 * Nicht zwingend erforderlich. Nicht benutzte Sessions werden nach 7 Tagen
	 * automatisch aus dem System gelöscht und können nicht mehr verwendet werden.
	 */
	$response = $api->call("session", "truncate", array(
		"session" => $session_id
	));

	if($response === true) {
		print("Session erfolgreich gelöscht<br>");
	} else {
		/* Fehler: Sitzung löschen */
		print("Session konnte nicht gelöscht werden werden<br>");
		var_dump($api->getError());
	}
} else {
	/* Abrufen der SessionId fehlgeschlagen */
	print("Konnte keine Session-Id abrufen<br>");
	var_dump($api->getError());
}

//--------------------------------------------------

?>
in Meiner Vorlgae habe ich eine html Datei mit den Login Feldern und und eine php Datei mit den Daten die oben stehen.
Über die html Datei

Code: Alles auswählen

<!doctype html>
<html>
 <head>
  <meta charset="utf-8">
  <title>Beispielaufruf VBStApiClient</title>
 </head>
 <body>
  <form action="example.php" method="post" enctype="application/x-www-form-urlencoded">
   <table>
    <tr>
     <td>Benutzername:</td>
     <td><input name="username" type="text"></td>
    </tr>
    <tr>
     <td>Kennwort:</td>
     <td><input name="password" type="password"></td>
    </tr>
    <tr>
     <td align="right" colspan="2">
      <input type="submit">
     </td>
   </table>
  </form>
 </body>
</html>
Hat jemand eine Idee???

Danke für eure Hilfe

Re: Erweiterung des Login Moduls

Verfasst: Fr 23. Jan 2015, 09:24
von rethus
Hallo,
vielleicht beschreibst du erst einmal genauer, was genau das Ziel der Umsetzung ist.

Ich hatte mal eine Aufgabenstellung, dass ich einen Deeplink ins Contenido-Backend benötigte.
Gelöst habe ich das so: https://wiki.xstable.com/doku.php/webso ... minbereich

Leider ist das bisher nicht in den Core aufgenommen worden, obwohl ich mich erinnere seiner Zeit darum gebeten zu haben.

@4fb: Bitte in den Core aufnehmen.