2012-04-15 23 views

Antwort

2

1: Ersetzen Sie den Auth-Treiber und Treiber conf in bootstrap_plugins.php mit den folgenden:

"CONF_DRIVER" => array(
     "NAME"  => "sql", 
     "OPTIONS" => array(
      "SQL_DRIVER" => array(
       "driver" => "mysql", 
       "host"  => "db_server", 
       "database" => "db_name", 
       "user"  => "db_username", 
       "password" => "db_password", 
      ), 
      ) 
),  

"AUTH_DRIVER" => array(
      "NAME"   => "sql", 
      //"NAME" => "remote", 
      "OPTIONS"  => array(
      "SLAVE_MODE" => true, 
       "SQL_DRIVER" => array(
             "driver" => "mysql", 
             "host"  => "db_server", 
             "database" => "db_name", 
             "user"  => "db_username", 
             "password" => "db_password" 
              ), 

       "LOGIN_URL" => "../login.php", // The URL to redirect to if a non-logged user tries to access AjaXplorer 
       "LOGOUT_URL" => "../logout.php", // The URL to redirect upon login out 
       "SECRET" => "ahmed",// the secret key that you will pass to the glueCode when communicating with it (see below) 
       "TRANSMIT_CLEAR_PASS" => false // Don't touch this. It's unsafe (and useless here) to transmit clear password. 
             ) 
       ), 

2: Dies ist, wenn Sie durch Ihre eigene Login-Seite anmelden möchten, müssen Sie eine Glucode Zeilen hinzufügen, wenn die Login-Seite nach der Authentifizierung Benutzername und Passwort:

define("AJXP_EXEC", true); 
    $glueCode = "ajaxplorer-core-4.0.4/plugins/auth.remote/glueCode.php"; 
    $secret = "ahmed"; 

    // Initialize the "parameters holder" 
    global $AJXP_GLUE_GLOBALS; 
    $AJXP_GLUE_GLOBALS = array(); 
    $AJXP_GLUE_GLOBALS["secret"] = $secret; 
    $AJXP_GLUE_GLOBALS["plugInAction"] = "login"; 
    $AJXP_GLUE_GLOBALS["autoCreate"] = false; 

    // NOTE THE md5() call on the password field. 
    $AJXP_GLUE_GLOBALS["login"] = array("name" => $_POST["login"], "password" => md5($_POST["password"])); 

    // NOW call glueCode! 
    include($glueCode); 

Dies sollte funktionieren.

+0

Danke für das Codebeispiel, Ahmed. Ich habe es zu meinem hinzugefügt und kann über die Logs sehen, dass ich mich erfolgreich eingeloggt habe, aber wenn ich dann auf den Link zu ajaxplorer klicke, hat es immer noch das Login-Popup, das ich hoffentlich umgehen konnte. Irgendeine Idee, was ich falsch mache? –

+0

siehe die Zeilen, in denen der Benutzer in gluecode authentifiziert wird Ich erinnere mich, dass ich gesetzt habe, wenn Bedingung auf wahr, um die Ajaxplorer-Authentifizierungsmethode zu umgehen. – ahmed

1

1) Sie können Bridge mit der SQL Auth-Methode in AjaxPlorer nicht verwenden, ohne den Code stark zu ändern. 2) Das obige Beispiel ist falsch, da Sie den Parameter "remote" für "NAME" angeben müssen oder nicht versuchen, die Bridge zu erstellen.

Dies ist, wie der Prozess funktioniert ...

Sie AjaXplorer sagen durch die Angabe der "NAME" => "remote" für "AUTH_DRIVER" Einstellung zu überbrücken. Dann verbindet sich AjaXplorer mit Ihrem CMS beim Login-Versuch über das AjaXplorer CMS Plugin und schreibt einen Benutzer in den users.ser (Serial File), falls dieser nicht existiert. An diesem Punkt versucht AjaXplorer gar nicht, irgendeine Datenbank zu betrachten. Die Datenbank wird komplett umgangen, wenn Sie "SQL_DRIVER" => $ SQL_Settings angeben oder nicht. Die einzige Weise, die es auf die Datenbank verweist, ist, wenn "NAME" => "sql" für "AUTH_DRIVER" Einstellung. Aber dann, wenn Sie 'sql' verwenden, werden Sie NICHT Brückenfunktionalität haben können.

Persönlich denke ich, das ist ein großer Fehler und ein großes Ärgernis.

Ich hoffe, dass dies die Verwirrung aufhebt.

Verwandte Themen