Добавить логин через социалки (не регистрацию, только логин)

Аватар пользователя duozersk

Категория задачи: 

  • юзабилити сайта

Статус: 

  • приостановлено

Всем привет!

Так как я являюсь основным разработчиком модуля HybridAuth - предлагаю добавить логин через соц сети на этот сайт (думаю, хватит 4-5 основных сетей - FB, VK, Twitter, Google, ...). Уточню, что только логин для уже зарегистрированных пользователей; процедура регистрации для новых пользователей не изменится.
То есть уже зарегистрированные пользователи смогут добавить идентификаторы из социалок к своим профилям на этом сайте и потом логиниться по клику на иконки этих социалок.
Посмотреть на админку модуля можно тут - http://www.slideshare.net/LEDC2013/social-authentication - с 13го слайда.

Спасибо.

P.S. Чтобы завести эту инициативу мне пришлось воспользоваться процедурой восстановления пароля :) Хорошо, что email угадал с первого раза ;)


UPD (от администратора сайта):

Приостанавливаю инициативу по причине непреодолимых трудностей. Детали здесь http://drupalspb.org/comment/454#comment-454

up
4 участника проголосовало.

Комментарии

Аватар пользователя Konstantin Komelin

Андрей, спасибо за

Андрей, спасибо за предложение.

У меня несколько встречных вопросов:
1. Что будет, если API социалки перестанет работать, например по причине обновления этого API?
Сможет ли юзер залогинится через стандартный логин?

2. Как часто меняется API у социальных сервисов?

P.S. Ну уж юзернейм твой для восстановления даже я бы угадал с первого раза.

Аватар пользователя duozersk

1. Да, сможет. Стандартный

1. Да, сможет. Стандартный логин будет работать так же, как и сейчас.
2. Зависит от социалки :) Бывает, что меняется. От этого никто не застрахован. В случае с внешней опен-сорсной библиотекой - либо кто-то уже поправил, либо можешь править сам (если соц логин подключен через какой-то сервис - ждёшь, пока они пофиксят; если своё решение - только сам и можешь пофиксить).

Аватар пользователя kalabro

Я за Twitter, VK, Facebook,

Я за Twitter, VK, Facebook, Google, LinkedIn

Поддерживаю. Так как у нас не предполагается использовать HybridAuth для регистрации, то особенности возвращаемых социалками данных нас вообще волновать не должны. Соответственно проблем для админов особых быть не должно.

Кстати, модуль предоставляет CSS-класс "hybridauth-last-provider". Если в прошлый раз я заходила через Facebook, то иконка Facebook будет подсвечена как напоминание:
hybridauth-example-2013-11-10_15-10-36.png
Мне эта фича очень нравится, потому что из предложенных 5-ти социалок я во всех 5-ти зарегистрирована и не помню куда как заходила.

Аватар пользователя Konstantin Komelin

Вопросов нет, это удобно для

Вопросов нет, это удобно для пользователя.

Теперь о проблемах админов. Предлагаю иногда мыслить стратегически с точки зрения админа, а не пользователя или разработчика того или иного классного модуля.

Предполжим, мы даем пользователю логиниться через соц сеть N. На следующий день соц сеть N меняет API. 128 пользователей пишет в поддержку гневные письма типа "Пачему я не могу войти через N! да вы офигели! Что делать?!1111". Админ должен каждому ответить, успокоить, рассказать о стандартном логине и пообещать уладить проблему как можно скорее. Дальше админ лезет на гитхаб и ищет в спешке фикс, обновляет либу. Если фикса нет, пишет свой. Весело? Да, но не админу.

Аватар пользователя duozersk

Какой-то странный админ... По

Какой-то странный админ... По хорошему, админ вешает новость на сайте, что логин через такую-то социалку сломался, объясняет, почему это произошло что администрация сайта делает, чтобы это исправить + объясняет, что сделать пользователям, чтобы войти на сайт. Потом всем 128 пользователям отсылает шаблонное письмо со ссылкой на эту новость (ну и тех ненормальных, которые пишут про офигели - посылает нафиг).
Стандартные действия для любой проблемы.

Аватар пользователя Alex Malkov

Какой-то странный админ...

Какой-то странный админ...

Успехов )

Это не конструктив. Вам не кажется?
А вот мне кажется (простите за тавтологию), что администрировать этот сайт одному человеку, причем в свободное от работы время, уже весьма не просто. Тут и технические моменты связанные с тестированием, API и т.п., и организационные, о которых было сказано выше.

Проект общественный, не частный. Предложение по подключению HybridAuth лично мне нравится. Это действительно удобно. Но, однако, до сих пор висят несколько старых инициатив (календарь событий, географическая карта участников, новый контент тип Проект мечты и т.д.) от других участников. С помощью Features некоторые вещи не решить... Как это все, к примеру, новые модули, представления (Views), правила (Rules) включить и настроить на рабочем сайте? Конечно - никак! Для этого нужно уже на другом уровне работать с проектом.

Давайте отдельно обсудим - как технически и организационно развивать этот сайт. Какие есть методы совместной работы?
Если посчитаете нужным - создам отдельно инициативу.

Аватар пользователя duozersk

А почему он один?... Я думал

А почему он один?... Я думал тут коммунити :) Готов помочь в этом нелегком труде, как минимум могу отвечать этим 128 недовольным челам ;)
Я и модуль-то предложил в том смысле, что я могу помочь, если с ним что не так будет (и с API соц сетей в частности).

Аватар пользователя Alex Malkov

я могу помочь

я могу помочь

Отлично! Это было бы здорово) С доступом отвечать недовольным - не проблема. А вот как быть с новыми фичами на сайте?

Дампы раздавать налево и направо (я имею ввиду потестить для других участников-друпалеров на своих локальных серверах) с личными данными пользователей - это, естественно, не дело. Да и замучаешься отключать varnish, memcache, кеширование в ядре и во вьюхах, Queue Mail, SMTP Authentication, Yandex.Metrics и др.

Git, SVN? Тут я, к сожалению, не владею вопросом. Возможно вы в курсе, как настроить development, staging и production сайты.

Я в свою очередь могу продумать, как организовать делегирование полномочий по зонам ответственности - администрирование, модерирование, стили и дизайн и т.п.

Что скажете?

Аватар пользователя paulanders

Внесу свои 5 копеек.С точки

Внесу свои 5 копеек.

С точки зрения пользователя

Соц логин это очень удобно, и практично. Я например, зарегистрировался давно, пароль уже забыл, заодно и решится проблема с восстановлением паролей, которая недавно поднималась. Убить двух зайцев - однозначно ЗА!. 5 сетей тоже - ЗА! Хотя linkedin - необязательно, от него я тоже забыл пароль :)

С точки зрения админа

Работаю с этим модулем около 2-лет, на проекте который не менее нагруженый. За это время никаких проблем не было. Ни одной жалобы!
Так что проблема поддержки скорее теоретическая, чем практическая.

Аватар пользователя Konstantin Komelin

(следует отметить, что я

(следует отметить, что я лояльный пользователь, реально осознающий удобство соц логина и параллельно пытающийся настроить его под D6)

Прогрес по вопросу:

1) Столкнулся с проблемой на нашем конфиге Nginx: https://drupal.org/node/2139979
Андрей предложил рабочее решение. Пошли дальше.
2) Модуль влючил.
3) Для начала решил попробовать Twitter.
Создал приложение. Официальное описание по настройке интеграции с твиттером, как и с другими, никуда не годится.
4) Разрешил только логин через соц сети в настройках модуля.
5) Пробовал залогиниться, без успеха. С какими-то невнятными ошибками не дает залогиниться, хотя имейл твиттера и имейл профиля на dspb совпадает.
6) Сумел только через настройи профиля добавить новый Identity. Но это ничего кроме пустой страницы (drupalspb.org/hybridauth/window/Twitter?destination_error=user/login&destination=user/login) не дало.

Предвкушаю как другие соц сети вылюбят мне мозг.

Желающие могут потестировать логин через твиттер http://drupalspb.org/user/login

Аватар пользователя duozersk

Сейчас мне выдало "New

Сейчас мне выдало "New account registration is not allowed." (вполне внятная ошибка) - видимо, не так как-то разрешил или поменял настройки.
+ Твиттер не сообщает имейл насколько я знаю.

Аватар пользователя Konstantin Komelin

Твиттер не сообщает имейл

Твиттер не сообщает имейл насколько я знаю.

Возможно это и объясняет тот факт, что я получил ошибку "New account registration is not allowed.", когда пользователь на drupalspb и на твиттере имеет тот же самый имейл.
Ну как же эта ошибка внятная, если я не регистрироваться хотел, а всего лишь авторизоваться с тем же имейлом, который системе уже известен.

Аватар пользователя duozersk

Да там нет ничего, о чем

Да там нет ничего, о чем стоило бы писать.
Для тех провайдеров, которые не сообщают имейл, или сообщают непроверенный имейл - невозможен автоматический джойн новой айдентити к уже существующему аккаунту (мы не можем быть уверены, что имейл уже существующего аккаунта принадлежит этому пользователю). Поэтому в случае с Твиттером можно добавить эту айдентит только в табе в своём аккаунте.
Я немного спутал выше, когда писал, что ты возможно что-то не так настроил (забыл, что мы тут разрешаем регистрацию только через форму).
В общем, для Твиттера надо сначала добавить айдентити к себе в профиль - и только потом можно будет через него заходить.
Для провайдеров, которые сообщают проверенный имейл (фейсбук, гугл) - возможен джойн к уже существующему профилю с таким же мылом (если выбрана эта опция в настройках модуля).

Но это не снимает пункта 6 - откуда берётся белый экран.

Аватар пользователя Konstantin Komelin

На самом деле в настройках

На самом деле в настройках приложений на соц сетях есть куча всяких опций, начиная с разных типов пермишнов, заканчивая галкой "Разрешить Signin with Twitter" (на примере твиттера), которые совсем не очевидны.

Спасибо, что объяснил по твиттеру, теперь гораздо все яснее. По белому экрану мне надо посмотреть логи сервера. Как будет время, посмотрю.

Аватар пользователя Konstantin Komelin

Походу проблема совместимости

Походу проблема совместимости с модулем Oauth:
"PHP Fatal error: Cannot redeclare class OAuthConsumer in /var/www/sites/drupalspb.org/sites/all/modules/oauth/lib/OAuth.php on line 20"
Создал еще один ишью https://drupal.org/node/2147429
Чувствую себя бета-тестером вашего модуля.

Аватар пользователя kalabro

500 Internal Server Error —

500 Internal Server Error — надо логи смотреть.
Как-то сложно поделиться, не зная в чём вопрос. Ключевой затык обычно в создании всех этих приложений в сервисах и расстановки их по текстфилдам :) Когда я дружила HA с ajax_register, то да, там пришлось пошаманить, но 500 не ловила никогда.

Аватар пользователя Konstantin Komelin

Всем спасибо, я вынужден

Всем спасибо, я вынужден отложить инициативу до лучших времен, так как библиотека HybridAuth, используемая модулем HybridAuth, несовместима с модулем OAuth, который в свою очередь нам необходим для автоматической публикации анонсов материалов в Twitter.
Детали проблемы здесь:
http://drupalspb.org/comment/451#comment-451
http://drupalspb.org/comment/453#comment-453