Seite 1 von 2

auth-Plugin für Webspell

Verfasst: 14.01.2010 20:36
von EinerDerGing
Hallo erst mal.

Da meine bisherige Suche und meine (An-)Frage, ob es denn bereits ein (funktionierendes) Auth-Plugin für die Verbindung phpBB & Webspell gibt, ohne nennenswerten Erfolg bzw. bisher ohne Rückmeldung waren, schreibe ich an meinem eigenen weiter.

Ich code das ganze erst mal auf einem Webserver lokal bei mir im Netzwerk, daher spielt die Sicherheit vorerst eine untergeordnete Rolle. Im ersten Schritt versuche ich gleichzeitige Anmeldung an beiden Systemen (phpBB & Webspell) zu bewerkstelligen. Auf http://wiki.phpbb.com/Authentication_plugins ist ja eigentlich recht gut erklärt, wie vorzugehen ist.

Nun hab ich aber (sicher auf Grund meiner schlechten Englisch- und den, bisher noch schlechternen php-Kenntnissen) ein kleines Verständnis-Problem bei der Umsetzung meines Vorhabens. Aber vielleicht kann mir einer der erfahrenen phpBB-Coder ja kurz meine Fragen beantworten und so ein paar Unklarheiten aus dem Weg räumen.

Liege ich Richtig oder Falsch:
1. In die Funktion "login_method()" frage ich ab, ob der Benutzer existiert --> Wenn ja, liefere ich ein Array mit u.a. 'status' => LOGIN_SUCCESS zurück --> phpBB loggt den Benuter ein (also setzt ohne weiteres zutun von mir die Session-cookies) / Wenn nein .. ok, eine andere Baustelle ?
2. (vielleicht zu speziell) In die Funktion "login_method()", bevor ich 'status' => LOGIN_SUCCESS übergebe, kann ich auch die Session-cookies für Webspell erzeugen lassen, was mich dort ja auch als eingeloggt ausgeben müsste?
3. Für was genau brauch ich denn die Funktion "autologin_method()" ? Oder setze ich hier die Cookies für Webspell?

Ich hoffe ihr könnt mir helfen .. auf das ich dieses Auth-Plugin endlich fertig bekomme, denn ich möchte niemanden, der mir das programmiert, sondern es selbst umsetzen und dabei hoffentlich was lernen.

MfG EDG

Re: auth-Plugin für Webspell

Verfasst: 14.01.2010 22:46
von Pyramide
EinerDerGing hat geschrieben:1. In die Funktion "login_method()" frage ich ab, ob der Benutzer existiert --> Wenn ja, liefere ich ein Array mit u.a. 'status' => LOGIN_SUCCESS zurück --> phpBB loggt den Benuter ein (also setzt ohne weiteres zutun von mir die Session-cookies)
Genau. Wenn es den Benutzer jedoch in phpBB noch nicht gibt, musst du LOGIN_SUCCESS_CREATE_PROFILE zurückgeben.
EinerDerGing hat geschrieben:2. (vielleicht zu speziell) In die Funktion "login_method()", bevor ich 'status' => LOGIN_SUCCESS übergebe, kann ich auch die Session-cookies für Webspell erzeugen lassen, was mich dort ja auch als eingeloggt ausgeben müsste?
Kannst du machen.
EinerDerGing hat geschrieben:3. Für was genau brauch ich denn die Funktion "autologin_method()" ?
Die ist für den umgekehrten Fall, d.h. wenn der Benutzer bereits in Webspell eingelogt ist, kannst du hier die Webspell-Session auslesen und der Benutzer wird bei entsprechendem Rückgabewert automatisch in phpBB eingelogt (d.h. ohne dass er im phpBB noch mal Benutzername+Passwort eingeben muss).

Re: auth-Plugin für Webspell

Verfasst: 15.01.2010 14:41
von EinerDerGing
2 mal editiert: meine letzte Editierung war um ca 19:05 Uhr

Danke Pyramide, auch für die schnelle Antwort. Das hat mir schon mal weiter geholfen.

Jetzt hab ich wieder ein Problem, dass ich nicht ohne fremde Hilfe lösen kann. :-?

Ich habe, um die Schritte, die die Login-Funktion ausführt, nachzuverfolgen (und da ich immer auf einer weißen Seite gelandet bin ^^) einfach nach jedem, ich nenne es mal "Vorgang", echo-Befehle gesetzt (und duch Bindestriche getrennt). Da alles bis auf das eigentliche Login (anscheinend) fehlerfrei funktionier, lasse ich die "echo"-Ausgaben mal weg.

Ich lese einen in phpBB existierenden Account mit: 'mysql_fetch_array($sql_ergebnis_phpbb_user, MYSQL_ASSOC);', also ein assioziatives Array aus. (Das war eine der Fehlerquellen zu Beginn, MYSQL_ASSOC fehlte.)
Ich erhalte folgende Meldung, wenn ich versuche mit diesem existierenden Administrator-Account einzuloggen (LOGIN_SUCCESS wird übergeben): Bemerkung: Nüscht, eine vollkommen weiße Seite ... Mehr geschieht nicht ? :-?
Edit: In der Adresszeile steht: http://192.168.1.101/webspell/phpbb/ucp ... dex.php%3F (Falls das einen Fehler erkennen lässt)

Ich erhalte folgende Fehler-Meldungen, wenn ich mich versuche mit einem in phpBB nicht existierenden Benutzer-Account einzuloggen (LOGIN_SUCCESS_CREATE_PROFILE wird übergeben, so wie Pyramide meinte; die "echo"-Ausgaben habe ich wieder entfernt):

Code: Alles auswählen

[phpBB Debug] PHP Notice: in file /includes/utf/utf_tools.php on line 1824: include(includes/utf/data/confusables.): failed to open stream: No such file or directory
[phpBB Debug] PHP Notice: in file /includes/utf/utf_tools.php on line 1824: include(): Failed opening 'includes/utf/data/confusables.' for inclusion (include_path='.:/usr/share/php5:/usr/share/php5/PEAR')
[phpBB Debug] PHP Notice: in file /includes/utf/utf_tools.php on line 1042: include(includes/utf/data/case_fold_c.): failed to open stream: No such file or directory
[phpBB Debug] PHP Notice: in file /includes/utf/utf_tools.php on line 1042: include(): Failed opening 'includes/utf/data/case_fold_c.' for inclusion (include_path='.:/usr/share/php5:/usr/share/php5/PEAR')
[phpBB Debug] PHP Notice: in file /includes/utf/utf_tools.php on line 1048: include(includes/utf/data/case_fold_f.): failed to open stream: No such file or directory
[phpBB Debug] PHP Notice: in file /includes/utf/utf_tools.php on line 1048: include(): Failed opening 'includes/utf/data/case_fold_f.' for inclusion (include_path='.:/usr/share/php5:/usr/share/php5/PEAR')
[phpBB Debug] PHP Notice: in file /includes/utf/utf_tools.php on line 1058: strtr(): The second argument is not an array
[phpBB Debug] PHP Notice: in file /includes/utf/utf_tools.php on line 1063: strtr(): The second argument is not an array
[phpBB Debug] PHP Notice: in file /includes/utf/utf_tools.php on line 1659: include(includes/utf/utf_normalizer.): failed to open stream: No such file or directory
[phpBB Debug] PHP Notice: in file /includes/utf/utf_tools.php on line 1659: include(): Failed opening 'includes/utf/utf_normalizer.' for inclusion (include_path='.:/usr/share/php5:/usr/share/php5/PEAR')
Bemerkung: Auch hier erhalte ich nur eine weiße Seite, zusätzlich noch die phpBB Debug-Meldungen
Auch hier steht in der Adresszeile wieder: http://192.168.1.101/webspell/phpbb/ucp ... dex.php%3F

Dieses Array übergebe ich:

Code: Alles auswählen

$row = array( 'user_id'   		=> $neue_ID_in_phpbb,
              'username'  		=> $array_ws_user[1],
              'user_password'	=> $eingegebenes_PW,
              'user_email'    => 'tester@mail.com',
              'group_id'	    => '2',
              'user_type'	    => USER_NORMAL,
            );
Mit diesem Befehl:

Code: Alles auswählen

  return array(
  	'status'   		=> LOGIN_SUCCESS_CREATE_PROFILE,
  	'error_msg'		=>  '',                     // false, ... in der auth_db.php
  	'user_row'		=> $row,
  );
Bemerkung: Da hier steht:
The error message returned on a successful external authentication should be an empty string.
habe ich bei 'error_msg' nur '', angegeben.

Jetzt zu meinem Verdacht. EDIT: Den habe wohl selbst ausgeräumt, denke ich zumindest. Aber ich lasse mich gerne eines Besseren belehren.


Testweise habe ich bereits versucht folgende Zeilen hinzu zu fügen, aber dann bleibt das Skript an dieser Stelle "stecken".

Code: Alles auswählen

global $db;
$result = $db->sql_query($sql_abfrage_phpbb_user);
$row = $db->sql_fetchrow($result);
Über die Bedeutung und Funktionsweise, bzw. Benutzung von $db->'WasAuchImmer' .. diesem Pfeil .. bin ich mir überhaupt nicht klar. Im Web habe ich dazu nur was gefunden im Bezug auf Klassen. Nuja, "->" ist auch ein wenig kurz um als Suchanfrage erfolg zu bringen. (Vielleicht hätte da jemand einen Link für mich, dass ich darüber mehr erfahre ... und mit ein wenig Glück bekomm' ich dann das Ganze auch ohne weitere Hilfe in den Griff :wink: )

Kurz und schmerzlos gefragt, hat jemand einen Hinweis, eine Idee oder auch nur ne Anregung, was ich weiter versuchen könnte? Ich steh irgendwie auf dem Schlauch, WO ich ansetzen muss um weiter zu kommen.

Vielen Dank schon mal, EDG.

Re: auth-Plugin für Webspell

Verfasst: 15.01.2010 18:47
von Pyramide
Ohne den zugehörigen Code zu sehen, sagen deine Debug-Ausgaben leider gar nichts aus :roll:.

Re: auth-Plugin für Webspell

Verfasst: 15.01.2010 19:09
von EinerDerGing
Bin grad etwas verunsichert ... soll ich den code mit allen unnötigen Kommentaren, Ausklammerungen und "echos" posten (ca 250 Zeilen) oder besser (irgendwo) hochladen und dann hier verlinken?

Danke noch mal, dass du dich meiner annimmst. :grin:

EDIT: Hier der Link zum Skript

bzw: http://www.phpbb.de/support/pastebin.ph ... view&s=373

MfG EDG

Re: auth-Plugin für Webspell

Verfasst: 15.01.2010 21:08
von Pyramide
Bei deinem ständigen nachträglichen Ändern der Beiträge verliere ich so langsam den Überblick, welcher Fehler denn jetzt überhaupt noch auftritt...

Re: auth-Plugin für Webspell

Verfasst: 15.01.2010 21:31
von EinerDerGing
Entschuldige :oops:

Ich lass die Posts jetzt so, versprochen. Danke für deine Geduld. :wink:

Auftretende Fehler sind leider immer noch die aus diesem Post. Also dem 3. Post im Thread.

Testweise habe ich auch mal eine Version des Skripts ohne "echo"-Anweisungen, um diese als Fehlerquelle auszuschließen, versucht, brachte aber auch keine Änderung.

Re: auth-Plugin für Webspell

Verfasst: 15.01.2010 22:41
von Pyramide
Es scheint so, als ob Webspell die globale Variable $phpEx leert. Da ich in deinem Code nirgends eine Stelle finden kann, in der utf8_clean_string() aufgerufen wird, muss der Aufruf von phpBB selbst kommen - und dort wird wohl kaum ein global $phpEx vergessen worden sein o.ä.

Re: auth-Plugin für Webspell

Verfasst: 16.01.2010 21:20
von EinerDerGing
Da ich aus Pyramides Post nicht so richtig schlau geworden bin, habe ich einfach noch mal von vorne angefangen. :grin:

Falls sich jemand für so ein Auth-Plugin interessiert, hier mal eine vorläufige Version. http://www.phpbb.de/support/pastebin.ph ... view&s=374

Bisher funktioniert folgendes:
- ein Benutzer, existierend in phpBB und Webspell kann sich in phpBB anmelden. (über das phpBB-Login .. abgefragt wird die Webspell-DB)
- ein Benutzer, existierend in Webspell aber nicht in phpBB wird automatisch in phpBB erstellt und angemeldet.
- Prüfungen, ob der Benutzer in Webspell exitiert und das Passwort richtig eingegeben wurde.

Das Skript ist weniger als Beta-Status und es sind nach wie vor sehr viele "echo"-Ausgaben gesetzt, um nachzuvollziehen, wo es Probleme gibt.

Dieser Post ist nicht als Hilferuf oder Supportanfrage gedacht, sondern nur, falls ich die Lust verlieren sollte, jemand anderes auf diesem Skript aufbauen kann und nicht bei Null beginnen muss.
Wenn ich fertig werden sollte (oder doch unerwartet auf, für mich unlösbare, Probleme stoße), werde ich natürlich das fertige Plugin posten (oder Fragen stellen - Pyramide scheint ja ab und an hier rein zu schauen).

Schönes Wochenende noch,
mfG EDG

Re: auth-Plugin für Webspell

Verfasst: 20.01.2010 01:10
von lofdblack
bin auch interesirt brauche dringend diesen mod wie ich es machen kann das man diese forum software ins webspell intregirt