Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne][MySQL][PHP]Wiele serwisów - jedna domena do rejestracji/logowania
Forum PHP.pl > Forum > Przedszkole
konrados
Witam,

Chciałbym stworzyć parę małych i większych serwisów. Właściwie trzy już stworzyłem i te też chciałbym podpiąć pod następującą koncepcję:

Chcę mieć jedną domenę (która będzie na innym serwerze, w innej firmie hostingowej niż pozostałe domeny), na której ludzie będą mogli się rejestrować, nazwijmy to Serwisem Rejestracji smile.gif I te informacje, podane podczas owej rejestracji, mają wystarczyć do zalogowania się na jakiejkolwiek innej mojej domenie. Co więcej - jak już się użytkownik zaloguje na serwisie X, to będzie również zalogowany na serwisie Y. Tak więc - jedna domena służy do zarządzania rejestracją i logowaniem się użytkowników.

Tak więc: użytk. loguje się na serwisie X, informacja ta jakoś dochodzi do Serwisu Rejestracji, zwrócona jest informacja o poprawnym/nie poprawnym zalogowaniu i dalej serwis X sobie działa, bez dalszej komunikacji z Serwisem Rejestracji (bo to pewnie za długo by trwało). Jednocześnie owo zalogowanie się, działa również na serwisie Y.

Macie jakieś pomysły jak to można zrealizować?

"Serwis Rejestracji" przechowuje tylko info typu: user_id, user_name, user_pass_md5, user_mail i zarządza rejestracją/logowaniem/wylogowaniem.

Pozostałe informacje dotyczące użytkowników (np. opcje) mają być już przechowywane na poszczególnych serwisach.

Czyli takie małe, własnoręcznie zrobione OpenId.
Mephistofeles
Musiałbyś zrobić jakieś API do tego, bo większość serwerów nie umożliwia bezpośredniego kontaktu bazy z siecią. Np. przekierowujesz użytkownika na stronę logowania, ona sprawdza czy jest zalogowany i zwraca access token, którego potem używasz przy pobieraniu innych danych, ewentualnie od razu zwracasz wszystko. Najlepiej oczywiście przez SSL.
CuteOne
Do rejestracji - jeżeli dostawca uniemożliwił zdalny dostęp do mysql.. wystarczą dwa pliki

1. Właściwy plik rejestracji - z formularzem na serwerze X. Podczas rejestracji skrypt zapisuje dane na tym serwerze i wysyła np. curlem identyczne dane do serwera Y
2. Na serwerze Y znajduje się plik odczytujący dane przesłane przez serwer X i zapisuje do bazy

Z logowaniem już nie jest tak kolorowo - cookie z jednej domeny nie mogą być wczytane na drugiej. Chyba, że tak jak kolega wspomniał stworzysz sobie API
konrados
No dobrze, no to to api jak rozumiem mogłoby wyglądać tak, że jest sobie strona, w której urlu podaję np. action=login&name=janKowalski&passMd5=123...

Akcja byłaby "login", lub "logout", lub "register".

Tak ?

Ale teraz: user się wziął i zalogował w serwisie X. Tam zapamiętałem w cookie name i passmd5... i no właśnie. Nie mogę w cookie serwisu X zapamiętać, że "zalogowany", musiałbym też w owym api zrobić action typu "sprawdź czy zalogowany" i wywoływać ów Serwer Rejestracji za każdym razem (przy każdym otwarciu jakiejś strony) celem sprawdzenia, czy się name i passmd5 zgadza, tak? No to by było strasznie wolne. Da się jakoś inaczej?
Mephistofeles
Nie dawaj takich danych w adresie, tylko wysyłaj POSTem, najlepiej z szyfrowaniem (zawsze ktoś może przechwycić dane między serwerami, chociaż to dosyć czarny scenariusz).
Nie musisz sprawdzać cały czas, sprawdzasz raz przy logowaniu na stronie docelowej i zapamiętujesz sesję normalnie, tak jak to się robi np. z Facebook Authentication. Poczytaj o OAuth.
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.