Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: forum phpBB3 Integracja rejestracji i logowania,
Forum PHP.pl > Forum > PHP
pablo_83
witam,
mam problem z stworzeniem uwierzytelniania użytkowników za pomocą tego samego loginu na stronie i na forum jednocześnie. Mianowicie chcę aby user, który loguje się na stronie był jednocześnie zalogowany na forum (problem popularny, jednak nie mogę znaleźć zadowalającego rozwiązania).

Rozwiązanie, które chciałem zastosować to:

- podczas rejestracji usera w portalu uzupełniam też tabelkę users w forum. Pierwszym problemem jaki napotkałem jest hasło, w phpbb3 do hashowania użyta jest funkcja phpbb_hash, której nie mogę w żaden sposób zastosować przez funkcję redirect(), powodującą błąd nadpisywania oryginalnej funkcji redirect() w moim frameworku (CodeIgniter). Jeśli ktoś ma pomysł jak to obejść czekam na propozycje.
Spróbowałem więc tworzyć usera z hasłem w zwykłej md5, i później samemu sprawdzać usera.
Tutaj problem jest taki że nie wiem jakiego rodzaju uwierzytelnianie jest zastosowane (w oparciu o jakie dane i w jaki sposób hashowane).
Przy normalnym logowaniu na forum są tworzone 3 ciastka
- phpbb3_ljnzq_u
- phpbb3_ljnzq_sid
- phpbb3_ljnzq_k

oraz tworzony jest wpis w tabeli sessions, nie wiem jakie dane są hashowane w kolumnie session_id nigdzie nie mogę tego znaleźć.
(nie mam bladego pojęcia po co ciastka są skoro po ich wykasowaniu nadal jestem zalogowany).


Z tego co wyczytałem to wystarczyć powinien poprawny wpis do tabelki sessions w forum (na podstawie tego jest sprawdzane zalogowanie), tylko cały czas nie wiem jakie dane są trzymane w postaci md5 w kolumnie session_id.

Ma ktoś wiedzę jak poprawnie wpisać te dane rejestracyjne do bazy (hasło) i później z nich utworzyć poprawną sesje dla forum. Proszę o pomoc.
Może ktoś się spotkał z tym problemem lub ma inne rozwiązanie.
rocktech.pl
Witam.

Musisz użyć funkcji z phpBB.

Przeszukaj forum phpBB hasło to phpBB bridge.

W skrócie będzie to wyglądać tak:

  1. //funkcje usera W phpBB
  2. require_once(ROOT_PATH."/includes/functions_user.php");
  3. $auth->login($username,$password);
Tajgeer
http://wiki.phpbb.com/Tutorial.Adding_pages

Może być przydatne.
pablo_83
@rocktech funkcji podanej przez Ciebie nie znalazłem w kodzie, prawdopodobnie w phpbb3 jest to inaczej rozwiązane.

@tajgeer - tutorial nie zawiera info o sposobie uwierzytelniania użytkowników.

Doszedłem już do tego (już... dopiero to lepsze słowo) że po zalogowaniu sesja jest trzymana w url i bazie danych (tabelka sessions) a po przejściu na kolejną stronę tworzone jest ciasteczko z tymi samymi danymi co w tabelce.

Nadal nie wiem jakie dane są trzymane w kolumnie session_id (tabelka sessions), nie jest to raczej md5 bo próbowałem użyć decode do md5 i nic nie znajduje. Próbowałem też sztucznie tworzyć insert do tabelki sessions i tworzyć ciastko z tymi samymi danymi, jednak nie zdało to rezultatu. Po wejściu na forum tworzy się inne ciastko (co dziwne) o tej samej nazwie, jedyne różnice to że działa w obrębie domeny i ma dowolny rodzaj połączenia (oraz oczywiście string sessji).

Przypomnę że cały portal funkcjonuje poprawnie mam uwierzytelnianie i obsługę klientów. Chciałbym zrobić tak aby przy logowaniu się do portalu user automatycznie zostawał zalogowany na forum. logowanie z forum zostanie w ogóle wyrzucone.

ma ktoś pomysł na rozwiązanie


EDIT:
problem rozwiązany ;]
okazało się że w tabeli sessions kolumna session_browser jest także wymagana a defakto jest ona kluczowa, musi być w niej zawartość $_SERVER['HTTP_USER_AGENT'], wartość kolumny session_id może być dowolnym stringiem ważne aby był taki sam zapisany w ciastku

po katowaniu się z pierdołą, temat do zamknięcia
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.