Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]System logowania na wielu domenach
patryk9200
post 7.02.2011, 00:34:23
Post #1





Grupa: Zarejestrowani
Postów: 319
Pomógł: 4
Dołączył: 7.02.2009
Skąd: pless

Ostrzeżenie: (0%)
-----


Witam,
Poszukuję przykładów lub podpowiedzi jak zrobić możliwość logowania na takiej zasadzie, że raz logując się np. na stronie xxx.pl to gdy przejdę pod domenę xxx2.pl również automatycznie będę zalogowany jako ten sam użytkownik. Logowanie może się odbywać przez jedną domenę, a dopiero po logowaniu przejść na właściwą. Chodzi mi o coś na wzór logowania
w google oraz Live ID Microsoft'y.

Dodatkowo chciałbym, żeby wtedy te serwisy mogły korzystać z wspólnej sesji.
Go to the top of the page
+Quote Post
CuteOne
post 7.02.2011, 01:22:52
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


Jeżeli domeny stoją na jednym serwerze to co za problem stworzyć jedną bazę użytkowników dla wszystkich portali? Co do sesji to nie trafiłeś - domena google jest nie zmienna, zmienia się tylko subdomena (połącz konta youtube i google-> zaloguj się na tube i zobacz czy jesteś zalogowany na google).

Ten post edytował CuteOne 7.02.2011, 01:23:57
Go to the top of the page
+Quote Post
patryk9200
post 7.02.2011, 14:56:26
Post #3





Grupa: Zarejestrowani
Postów: 319
Pomógł: 4
Dołączył: 7.02.2009
Skąd: pless

Ostrzeżenie: (0%)
-----


sęk w tym, że są na osobnych serwerach ale korzystają z tej samej bazy użytkowników, a można ustawić jedno ciastko sesyjne dla kilku domen, a samą sesję po prostu wrzucić do bazy danych?

a jak takie sesje są rozwiązane np. w Live ID?
myślę, że zrobię własny menadżer sesji użytkowników który będzie operował na bazie danych w której będę przetrzymywał z serializowane tablice.
Pytanie tylko w jaki sposób identyfikować tego samego użytkownika dla różnych domen?
jak rozwiązać taki problem, że dla bezpieczeństwa po każdym odświeżeniu będę zmieniał identyfikator sesji?
myślałem, żeby rozwiązać to tak, że każda witryna będzie miała dla danej sesji własne ID co mnie zabezpieczy, że po zmianie ID sesji wyloguje mnie z reszty moich portali
czy takie rozwiązanie było by dobre?
Go to the top of the page
+Quote Post
ylk
post 7.02.2011, 15:01:24
Post #4





Grupa: Zarejestrowani
Postów: 194
Pomógł: 26
Dołączył: 9.01.2011
Skąd: /dev/null

Ostrzeżenie: (0%)
-----


Być może bredzę, ale być może tak by dało radę.

Funkcja setcookie() umożliwia ustawienie domeny, dla której to ciastko jest dostępne.
Może więc przy logowaniu na xxx.com ustawiaj dwa ciastka - jedno z domeną xxx.com, drugą z xxx2.com?
Go to the top of the page
+Quote Post
tehaha
post 7.02.2011, 15:34:49
Post #5





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


nie możesz ustawiać ciastka dla innych domen
Go to the top of the page
+Quote Post
patryk9200
post 7.02.2011, 15:38:20
Post #6





Grupa: Zarejestrowani
Postów: 319
Pomógł: 4
Dołączył: 7.02.2009
Skąd: pless

Ostrzeżenie: (0%)
-----


wcale nie głupie! faktycznie, zupełnie zapomniałem o tej opcji :-)
pomyśle nad tym jak to zrobić ;-)

w takim razie po co jest ta funkcja? masz może inny pomysł?

w takim razie po co jest ta funkcja, skoro nie można dla innych domen ustawić? masz może inny pomysł? jak to robią np. serwisy reklamowe? w końcu na jakiejś zasadzie identyfikują użytkownika
Go to the top of the page
+Quote Post
tehaha
post 7.02.2011, 15:44:04
Post #7





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


a jak Ty to sobie wyobrażasz, że mogę ustawić ciastko dla każdej dowolnej strony? Osobiście jeszcze nie kombinowałem z takim mechanizmem ale musisz trochę poszukać w necie http://msdn.microsoft.com/en-us/library/bb735305.aspx, http://stackoverflow.com/questions/342378/...ered-from-one-d

//a w odpowiedzi na pytanie po co jest ustawianie domeny w ciastku to możesz sobie ustawić to ciastko np. tylko dla konkretnej subdomy

Ten post edytował tehaha 7.02.2011, 15:46:01
Go to the top of the page
+Quote Post
ylk
post 7.02.2011, 15:54:29
Post #8





Grupa: Zarejestrowani
Postów: 194
Pomógł: 26
Dołączył: 9.01.2011
Skąd: /dev/null

Ostrzeżenie: (0%)
-----


Tak myślałem, że bredzę smile.gif W takim razie próbował bym to zrobić w następujący sposób:

W skrypcie od logowania w domenie xxx.com po udanym logowaniu przekazywał bym dane żądaniem POST do domeny xxx2.com, która to by sama sobie ustawiła swoje ciastko smile.gif
Czyli tak jakby podwójne logowanie za jednym zamachem smile.gif

Ten post edytował ylk 7.02.2011, 15:56:12
Go to the top of the page
+Quote Post
patryk9200
post 7.02.2011, 15:58:31
Post #9





Grupa: Zarejestrowani
Postów: 319
Pomógł: 4
Dołączył: 7.02.2009
Skąd: pless

Ostrzeżenie: (0%)
-----


dzięki za artykuły :-) już wiem jak robi Microsoft, poprzez przekierowanie, zrobię sobie coś podobnego
Go to the top of the page
+Quote Post
tehaha
post 7.02.2011, 16:04:59
Post #10





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


to jeszcze zależy co byś chciał przesyłać tym postem, bo akurat POST to już możesz wysłać do dowolnej strony, w drugim linku, który podałem jest w prosty sposób opisane jak to zrobić ja bym zrobił tak:
w domena1.pl generujesz zalogowanemu użytkownikowi 2 klucze: (hasz), najlepiej na podstawie jego danych i np. micorotime() i jakiejś danej losowej oraz określasz jego ważność np. 1 min, drugi klucz to będzie np. sha1($pierwszy_klucz.$tajny_ciag), na doemena2.pl wysyłasz tylko ten pierwszy klucz za pomocą $_GET przy przekierowaniu, w domena2.pl z otrzymanego klucza generujesz ten drugi klucz czyli przez sha1($pierwszy_klucz.$tajny_ciag), łączysz się z domena1.pl i sprawdzasz czy jest taki klucz jeżeli tak to logujesz użytkownika
Go to the top of the page
+Quote Post
ylk
post 7.02.2011, 16:35:26
Post #11





Grupa: Zarejestrowani
Postów: 194
Pomógł: 26
Dołączył: 9.01.2011
Skąd: /dev/null

Ostrzeżenie: (0%)
-----


POSTem z xxx.com przekazał bym login i hasło do skryptu logowania na xxx2.com
Go to the top of the page
+Quote Post
patryk9200
post 7.02.2011, 17:00:20
Post #12





Grupa: Zarejestrowani
Postów: 319
Pomógł: 4
Dołączył: 7.02.2009
Skąd: pless

Ostrzeżenie: (0%)
-----


Cytat(tehaha @ 7.02.2011, 16:04:59 ) *
to jeszcze zależy co byś chciał przesyłać tym postem, bo akurat POST to już możesz wysłać do dowolnej strony, w drugim linku, który podałem jest w prosty sposób opisane jak to zrobić ja bym zrobił tak:
w domena1.pl generujesz zalogowanemu użytkownikowi 2 klucze: (hasz), najlepiej na podstawie jego danych i np. micorotime() i jakiejś danej losowej oraz określasz jego ważność np. 1 min, drugi klucz to będzie np. sha1($pierwszy_klucz.$tajny_ciag), na doemena2.pl wysyłasz tylko ten pierwszy klucz za pomocą $_GET przy przekierowaniu, w domena2.pl z otrzymanego klucza generujesz ten drugi klucz czyli przez sha1($pierwszy_klucz.$tajny_ciag), łączysz się z domena1.pl i sprawdzasz czy jest taki klucz jeżeli tak to logujesz użytkownika

myślę, że twój pomysł jest warty rozpatrzenia ;-)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 5.06.2024 - 21:02