Як зробити "Додати більше входу", подібний до Stackoverflow?


15

Я використовую модуль OpenID Selector для інтеграції входів OpenID на свій веб-сайт; та сама послуга, яку використовує Stackoverflow для входу / реєстрації. Однак як я можу додати параметр "Додати більше входів", як Stackoverflow? Я також відкритий для пропозицій.

Ідея полягає у недопущенні дублікатів користувачів. Я використовую D7.

Дивіться додане зображення.

Також вітаються певні виправлення. введіть тут опис зображення


2
Якщо немає робочих модулів, я відкритий для пропозицій, і якщо я отримаю досконалу логіку; Я обіцяю, що ви точно отримаєте модуль D7, розміщений на drupal.org.
niksmac

Повний один день бездіяльності, я розчарований. Це рідкісна річ у Stackoverflow. !!
niksmac

Я знаю, що є модуль Janrain, який інтегрує декілька вхідних даних, але я поняття не маю, як і навіть якщо вони взагалі мають справу з копіями.
stefgosselin

@NikhilM Ви ставите проект пісочниці для цього чи чого? Я буду радий переглянути це :-)
AjitS

@indrock, На жаль, мій клієнт відмовився від концепції. Я планую зробити щось подібне, але недавно. Я досить зайнятий.
niksmac

Відповіді:


9

Отже, за замовчуванням більшість модулів Drupal роблять з аутентифікацією те, що вони замінять поточну настройку входу на власну.

Цей підхід добре описаний на http://drupal.org/node/114774#dist-auth і його можна побачити в тому, як працює поточний відкритий модуль, передбачений в ядрі Drupal.

Якщо я правильно розумію ваше запитання, ви хочете запропонувати людям спосіб засвідчити автентифікацію з декількох різних джерел, і щоб ті включені джерела відображалися під їх профілем користувача. Я не думаю, що ще є модуль, який це робить, оскільки більшість модулів аутентифікації працюють у своєму маленькому міхурі, як описано вище.

Після швидкого огляду OpenID Selector ви не збираєтеся отримувати багато пробігу звідти, головним чином його реалізацію та налаштування бібліотеки jquery. Вам потрібно буде написати це з нуля.

Основними елементами вашого модуля будуть:

  1. Таблиця бази даних, яка підтримує входи, пов'язані з певним користувачем.
  2. Якась схема form_alter для сторінки входу для відображення всіх доступних параметрів входу, яку вказав власник сайту (це замінить те, що зараз виконують окремі модулі)
  3. Сторінка адміністратора, яку власник сайту може вибрати з доступних опцій.

Кожен з цих варіантів входу, ймовірно, надаватиметься окремим модулем contrib, тому вам, можливо, доведеться змінити свою логіку щодо специфіки, яку ви знайдете в реалізації від цих модулів.

Для мене це амбітне завдання щодо настроюваного модуля, який ви плануєте випустити, але якщо ви пройдете швидкий та брудний високомодифікований / жорстко закодований маршрут для одного сайту, це не повинно зайняти вас занадто багато часу.

Інші місця, де можна шукати натхнення щодо того, як працюють автентичні модулі в Drupal та можливі джерела, які ви можете включити, - FBOauth та Twitter .


Дякую за таку детальну відповідь. Мені це все одно потрібно. Тож давайте зробити це сам, принаймні, це допоможе мені.
niksmac

8

Чи не відповідає HybridAuth Social Sign-up вашим вимогам?

Цей модуль інтегрує бібліотеку HybridAuth в Drupal і дозволяє вашим користувачам входити в систему та реєструватися за допомогою Google, Facebook, Twitter, Yahoo, MySpace, Windows Live, LinkedIn, Foursquare, AOL, OpenID та ін. Додатковими провайдерами є: Github, Gowalla, LastFM, Vimeo, Disqus, Instagram, Viadeo, Identica, Tumblr, Goodreads, QQ, Sina, Murmur, Pixnet, Plurk, Skyrock, 500px, Vkontakte, Mail.ru, Яндекс, Одноклассники.

Я сам не користувався цим, але, здається, читання опису та скріншотів підказує, що він робить все, що вам потрібно.

Оновлення: дивлячись на статистику використання, здається, що модуль був підібраний лише нещодавно і, можливо, його не можна було використовувати, коли ви розміщували це запитання.


Якщо цей модуль працює добре ... що, мабуть, так ... ви заощадите мені приблизно 20 або 40 годин роботи джаджа дякую!
Beto Aveiga
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.