auth-Plugin für Webspell

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
EinerDerGing
Mitglied
Beiträge: 8
Registriert: 13.01.2010 13:57

auth-Plugin für Webspell

Beitrag 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
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: auth-Plugin für Webspell

Beitrag 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).
KB:knigge
EinerDerGing
Mitglied
Beiträge: 8
Registriert: 13.01.2010 13:57

Re: auth-Plugin für Webspell

Beitrag 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.
Zuletzt geändert von EinerDerGing am 15.01.2010 19:04, insgesamt 1-mal geändert.
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: auth-Plugin für Webspell

Beitrag von Pyramide »

Ohne den zugehörigen Code zu sehen, sagen deine Debug-Ausgaben leider gar nichts aus :roll:.
KB:knigge
EinerDerGing
Mitglied
Beiträge: 8
Registriert: 13.01.2010 13:57

Re: auth-Plugin für Webspell

Beitrag 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
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: auth-Plugin für Webspell

Beitrag 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...
KB:knigge
EinerDerGing
Mitglied
Beiträge: 8
Registriert: 13.01.2010 13:57

Re: auth-Plugin für Webspell

Beitrag 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.
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: auth-Plugin für Webspell

Beitrag 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.ä.
KB:knigge
EinerDerGing
Mitglied
Beiträge: 8
Registriert: 13.01.2010 13:57

Re: auth-Plugin für Webspell

Beitrag 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
lofdblack
Mitglied
Beiträge: 2
Registriert: 20.01.2010 01:05

Re: auth-Plugin für Webspell

Beitrag von lofdblack »

bin auch interesirt brauche dringend diesen mod wie ich es machen kann das man diese forum software ins webspell intregirt
Antworten

Zurück zu „[3.0.x] Mod Bastelstube“