2010-12-13 24 views
27

Wdrażam wtyczkę, którą można osadzać w różnych witrynach (a la Meebo, Wibiya) i chcę korzystać z usługi Facebook Connect. Wtyczka ma być osadzana w witrynach o różnych nazwach domen. Problem polega na tym, że Facebook connect pozwala tylko na jedną domenę na zarejestrowaną aplikację.Facebook Connect dla jednej aplikacji z wieloma domenami?

Pytanie brzmi, jak mogę mieć wiele domen dla pojedynczej aplikacji Facebook, przyjmując:

  1. Gdy użytkownicy „Zezwól” aplikacji w jednym miejscu, nie będzie musiał „Zezwól” go także na innych stronach.

  2. Najlepiej, po pierwszym zalogowaniu, użytkownicy nie będą widzieć wyskakującego okna w każdej witrynie, do której się logują (tj. - wolałbym nie otwierać łącza do mojej domeny i robić dziennika - w tym procesie).

Czy tak jest w ogóle?
Jeśli nie, czy moją jedyną opcją jest zarządzanie wszystkimi logowaniami z jednej domeny i przekazywanie plików cookie z powrotem do oryginalnych domen?
A jeśli przekażę ciasteczka między domenami, jak mogę się upewnić, że Facebook nie zablokuje tego rodzaju zachowania w przyszłości?

Byłbym wdzięczny za wszelkie sugestie, chociaż wolałbym oficjalne rozwiązanie w stosunku do hacków, jeśli w ogóle możliwe.

+0

Mam ten sam problem i utworzyłem prośbę o dodanie funkcji, jeśli chcesz dołączyć, kliknij Subskrybuj i "Mogę to odtworzyć" pod tym linkiem: http://developers.facebook.com/bugs/261827430571426 Greetz, Simon – Simon

Odpowiedz

2

Zakładam, że używasz facebook.php by Naitik Shah? Widżet będzie musiał być na każdej stronie oczywiście i zawierać async script connect-js. Sam pracuję obecnie nad aplikacją opartą na facebooku.

Powiedziałbym, że najlepszym rozwiązaniem jest zbyt zalogowanie się za pośrednictwem własnej domeny i przekazanie pliku cookie. Twoja aplikacja/widżet będzie jedyną, na którą pozwalają udostępniać informacje. Nic nie powinno się różnić w działaniu od rozwiązania jednej strony. Przewiduję wtyczkę PHP, która wykonuje logowanie z zewnętrznej domeny i przekazuje cookie do witryny za pośrednictwem widgetu. zwróć bezpiecznie plik cookie, jak chcesz (z wyjątkiem czegoś podejrzanego, takiego jak przechowywanie go w div i pobieranie go lub czegoś, co haker może spróbować sfałszować). Strona następnie użyje pliku cookie do celów konta i identyfikatora użytkownika, a widget będzie kontrolować wszystkie akcje logowania i wyszukiwanie sesji za pomocą skryptu asynchronicznego (ale kierowane przez inną domenę).

Niestety, nie mogę pomóc, ale to jedyne rozwiązanie, jakie mogę wymyślić, i wygląda na to, że już i tak.

Jeśli chodzi o utrzymywanie kontroli sesji w różnych domenach, wystarczy tylko aktywny plik cookie innej firmy. Po aktywowaniu strony dla domeny będziesz mieć już plik cookie dla tej domeny, jeśli nie wylogowałeś się lub nie wygasł. Korzyści z korzystania z zewnętrznej domeny zarządzania.

Wydaje się, że jest to również najbardziej niezawodny sposób w porównaniu do udanego hakowania wielu domen, ponieważ widziałbym fb i Oauth2.0 jako ok z zatwierdzonymi informacjami o współudziale strony (cookie) dla innej strony zatwierdzonej przez zatwierdzona strona. Ale może to być problematyczne, jeśli uważają, że użytkownik będzie miał problemy z prywatnością, ponieważ możesz potencjalnie udostępnić plik cookie w dowolnej witrynie bez pozwolenia użytkowników. Musisz więc uważać na powiadamianie użytkownika o wszystkich stronach, do których będą automatycznie logowane i traktując je z szacunkiem.

Życzymy powodzenia, mam nadzieję, że dasz nam znać, jak to działa.

+0

Nie naprawdę to, na co liczyłem, ale ostatecznie zastosowaliśmy to podejście ... – Ofirov

+0

Czy działający kod dla tego @Orirova? Utknąłem w tym. Doceń swoją odpowiedź :-) – Gogol

0

Istnieje prosta i czysta technika -> Single Sign On (SSO). Możesz wyszukiwać na ten temat.

Powiązane problemy