Как сделать «Добавить больше логинов» похожим на Stackoverflow?

15

Я использую модуль OpenID Selector для интеграции логинов OpenID на мой сайт; тот же сервис, используемый Stackoverflow для входа в систему / регистрации. Тем не менее, как я могу добавить опцию «Добавить дополнительные логины», как Stackoverflow? Я также открыт для предложений.

Идея состоит в том, чтобы предотвратить дублирование пользователей. Я использую D7.

Смотрите прикрепленное изображение.

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

niksmac
источник
2
Если нет рабочих модулей, я открыт для предложений, и если я получаю идеальную логику; Я обещаю, что вы обязательно получите модуль D7, размещенный на drupal.org.
Никсмак
Завершите один день бездействия, я разочарован. Это редкая вещь в Stackoverflow. !!
niksmac
Я знаю, что есть модуль Janrain, который объединяет несколько входов в систему, но я понятия не имею, как или даже если они вообще имеют дело с дубликатами.
stefgosselin
@NikhilM вы помещаете проект песочницы для этого или что? Я буду рад рассмотреть это :-)
AjitS
@indrock, к сожалению, мой клиент отказался от концепции. Я планирую сделать что-то похожее, но не в последнее время. Я довольно занят.
Никсмак

Ответы:

9

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

Этот подход хорошо описан в http://drupal.org/node/114774#dist-auth и можно увидеть в том, как работает текущий модуль openid, представленный в ядре Drupal.

Если я правильно понимаю ваш вопрос, вы хотите, чтобы люди могли проходить проверку подлинности из разных источников и чтобы эти включенные источники отображались в их профиле пользователя. Я не думаю, что есть модуль, который делает это, поскольку большинство модулей авторизации работают в своем собственном маленьком пузыре, как описано выше.

После быстрого взгляда на OpenID Selector вы не добьетесь большого успеха, он в основном реализует и конфигурирует библиотеку jquery. Вам нужно будет написать это с нуля.

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

  1. Таблица базы данных, в которой хранятся логины, связанные с данным пользователем.
  2. Некоторая схема form_alter для страницы входа в систему, чтобы показать все доступные параметры входа, указанные владельцем сайта (это заменит то, что в данный момент делают отдельные модули)
  3. Страница администратора для владельца сайта, чтобы выбрать из доступных вариантов.

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

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

Другие места, где можно найти вдохновение о том, как работают модули аутентификации в Drupal, и возможные источники, которые вы, возможно, захотите включить, - это FBOauth и Twitter .

Марк Ферри
источник
Спасибо за такой подробный ответ. Мне все равно это нужно. Так что давайте сделаем это сами, по крайней мере, это поможет мне.
niksmac
8

Имеет ли HybridAuth Social Sign-на не соответствует вашим требованиям?

Этот модуль интегрирует библиотеку 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, Вконтакте, Mail.ru, Яндекс, Одноклассники.

Я не использовал его сам, но чтение описания и скриншотов, кажется, предполагает, что он делает то, что вам нужно.

Обновление: Глядя на статистику использования, кажется, что модуль был поднят только недавно, и, возможно, вы не смогли его использовать, когда вы разместили этот вопрос.

Vyoma
источник
Если этот модуль работает хорошо ... что, кажется, имеет место ... вы экономите мне около 20 или 40 часов работы, спасибо, спасибо!
Бето Авейга