Jak zrobić „Dodaj więcej loginów” podobnie jak Stackoverflow?


15

Korzystam z modułu Selektor OpenID , aby zintegrować loginy OpenID z moją witryną; ta sama usługa używana przez Stackoverflow do logowania / rejestracji. Jak mogę jednak dodać opcję „Dodaj więcej loginów”, np. Stackoverflow? Jestem również otwarta na sugestie.

Chodzi o to, aby zapobiec duplikowaniu użytkowników. Używam D7.

Zobacz załączony obraz.

Mile widziane są również poprawki. wprowadź opis zdjęcia tutaj


2
Jeśli nie ma żadnych działających modułów, jestem otwarty na sugestie i jeśli otrzymuję idealną logikę; obiecuję, że na pewno dostaniesz moduł D7 hostowany na drupal.org.
niksmac

Uzupełnij jeden dzień bezczynności, jestem rozczarowany. To rzadka rzecz w Stackoverflow. !!
niksmac

Wiem, że istnieje moduł Janrain, który integruje wielokrotne logowanie, ale nie mam pojęcia, jak, a nawet czy w ogóle radzą sobie z duplikatami.
stefgosselin

@NikhilM stawiasz projekt piaskownicy dla tego czy co? Z przyjemnością to
sprawdzę

@indrock, Niestety mój klient porzucił koncepcję. Planuję zrobić coś podobnego, ale nie ostatnio. Jestem bardzo zajęty.
niksmac,

Odpowiedzi:


9

Domyślnym założeniem większości modułów Drupal z uwierzytelnianiem jest to, że zastąpią one obecną konfigurację logowania własną.

Podejście to zostało dobrze opisane w http://drupal.org/node/114774#dist-auth i można je zobaczyć w tym, jak działa obecny moduł openid w rdzeniu Drupal.

Jeśli dobrze rozumiem twoje pytanie, chcesz zapewnić ludziom możliwość uwierzytelnienia z wielu różnych źródeł i umożliwić włączenie tych włączonych źródeł pod ich profilem użytkownika. Nie sądzę, aby istniał jeszcze moduł, który to robi, ponieważ większość modułów uwierzytelniania działa we własnej małej bańce, jak opisano powyżej.

Po krótkim spojrzeniu na OpenID Selector nie uzyskasz stamtąd dużego przebiegu, głównie jego implementacja i konfiguracja biblioteki jquery. Będziesz musiał napisać to od zera.

Główne elementy Twojego modułu to:

  1. Tabela bazy danych, która utrzymuje dane logowania powiązane z danym użytkownikiem.
  2. Jakiś schemat form_alter dla strony logowania, aby pokazać wszystkie dostępne opcje logowania określone przez właściciela strony (to zastąpi to, co obecnie robią poszczególne moduły)
  3. Strona administratora dla właściciela witryny do wyboru spośród dostępnych opcji.

Każda z tych opcji logowania będzie zapewniona przez osobny moduł contrib, więc być może będziesz musiał zmienić logikę pod kątem szczegółów, które znajdziesz w implementacji z tych modułów.

Dla mnie jest to ambitne przedsięwzięcie dotyczące konfigurowalnego modułu, który planujesz wypuścić, ale jeśli wybierzesz szybką i brudną wysoce spersonalizowaną / zakodowaną na stałe trasę dla pojedynczej witryny, nie powinno to zająć zbyt długo.

Inne miejsca, w których można zainspirować się działaniem modułów uwierzytelniających w Drupal, a potencjalnymi źródłami, które możesz chcieć podać, są FBOauth i Twitter .


Dzięki za tak szczegółową odpowiedź. Potrzebuję tego mimo wszystko. Zróbmy to więc sami, przynajmniej mi to pomoże.
niksmac

8

Czy logowanie społecznościowe HybridAuth nie spełnia Twoich wymagań?

Moduł ten integruje bibliotekę HybridAuth z Drupal i umożliwia użytkownikom logowanie i rejestrację za pomocą Google, Facebook, Twitter, Yahoo, MySpace, Windows Live, LinkedIn, Foursquare, AOL, OpenID i innych. Dodatkowymi dostawcami są: Github, Gowalla, LastFM, Vimeo, Disqus, Instagram, Viadeo, Identica, Tumblr, Goodreads, QQ, Sina, Murmur, Pixnet, Plurk, Skyrock, 500px, Vkontakte, Mail.ru, Yandex, Odnoklassniki.

Nie korzystałem z niego sam, ale czytanie opisu i zrzutów ekranu sugeruje, że robi to, czego potrzebujesz.

Aktualizacja: patrząc na statystyki użytkowania wydaje się, że moduł został pobrany dopiero niedawno i może nie być przydatny po opublikowaniu tego pytania.


Jeśli ten moduł działa dobrze ... wydaje się, że tak jest ... oszczędzasz mi około 20 lub 40 godzin pracy jaja dzięki!
Beto Aveiga
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.