Zastanawiam się, które rozwiązanie z tytułu będzie lepsze do logowania poprzez facebook.
User ma mieć możliwość “normalnego” zalogowania się oraz poprzez konto na facebook’u(klika zaloguj się poprzez facebook, zostaje przelogowany na stronę logowania na fejsie, a następnie jeśli logowanie powiodło się, zostaje przekierowany z powrotem na stronę aplikacji).
Jestem bardziej za Devise’m bo mam w nim większe doświadczenie(i IMHO rozwija się bardziej dynamicznie niż konkurencja oraz jest łatwiejszy do ogarnięcia) niż w Authlogic, ale logowanie, rejestracja są już napisane i działają w projekcie.
Jednakże projekt ma byc przez dłuższy czas wspierany i mogą wyniknąć kwiatki podczas aktualizacji gemów.
Praktycznie mówiąc dziś wyniknął dość śmieszny błąd podczas odpalenia
bundle install
Wywala bład(na jakiejkolwiek stronie aplikacji!):
"uninitialized constant AuthlogicConnect"
a gemy jak popatrzałem praktycznie nie zostały zaaktualizowane(jak była wersja Authlogic 2.1.3, tak nadal jest po bundlerze).
Następna sprawa to jak ma wyglądać sytuacja z użytkownikiem, który nie ma konta w serwisie i loguje się poprzez facebook.
Po pomyślnym zalogowaniu poprzez fejsa user ma mieć utworzone konto w serwisie. Jednak gdyby mu się zachciało “normalnego” logowania musiałby skorzystać z opcji przypominania hasła ALBO losowe hasło powinno być generowane i wysyłane na maila po utworzeniu użytkownika(druga opcja wydaje mi się fajniejsza).
Jednak obecnie w kombo: Authlogic + AuthlogicConnect występuje dziwna sytuacja. Mianowicie gdy user utworzy konto poprzez fejsa, oraz następnie zachcę mu się zalogować “normalnie”, to zostaje przyblokowane logowanie przez fejsa.
Podsumowując.
Jaka kombinacja lepsza: Devise + OmniAuth czy Authlogic + AuthlogicConnect.
Czy często są takie problemy z zależnościami odnośnie gemów oraz errorami po update’cie przez bundler’a?
Czy da się jakoś lepiej rozegrać tworzenie konta poprzez logowanie “fejsowe” niż moja chora wizja?
W mojej aplikacji, jeśli użytkownikowi się odwidzi logowanie przez facebooka to może sobie “odzyskać” hasło - zerknij na www.timebacus.com -> zakładka My Account -> user może też odzyskać hasło będąc zalogowanym.
Uważaj na Twittera - nie wysyłą adresu email użytkownika w odpowiedzi od jakiegoś czasu i przy rejestracji trzeba usera poprosić o email.
Na pytanie “Devise czy Authlogic” właściwie sam sobie odpowiedziałeś.
Co do 3) – nie pisałem nigdy takich rzeczy, ale serwisy z których korzystam i do których loguję się zewnętrznymi kontami (google/fb) w ogóle nie wspominają mi o czymś takim jak hasło
Przydatna odpowiedź na problem który u mnie wystąpił:
Zrobiłem kombo Devise + OmniAuth na podstawie railscastów Ryan’a.
Generalnie logowanie “obustronne”(możliwość logowania “normalnie” jak i poprzez facebook) działa tylko wtedy, gdy konto stworzone zostało poprzez facebook, a następnie skorzystano z opcji przypominania hasła.
Jeśli user stworzył konto normalnie, a następnie miałby zachciankę logowania się poprzez facebook, to nie działa(nie tworzy rekordu w authentications, zatrzymuje się na formularzu /users/sign_up i nie przechodzi dalej).