Стратегии для аутентификации учетных записей пользователей на других сайтах? - PullRequest
0 голосов
/ 14 января 2011

Я работаю над небольшим приложением Rails, в котором я хотел бы, чтобы пользователи могли доказать, что учетные записи, которые они имеют на других сайтах, Live Journal, Stack Overflow, Reddit и т. Д., На самом деле принадлежат им.

Может ли кто-нибудь дать какое-нибудь руководство о том, как лучше всего достичь чего-то подобного?

Я обрисовал в общих чертах некоторые возможные варианты подтверждения учетной записи.

  1. Попросите пользователей в основном передавать свои учетные данные для входа в приложение через SSL и разрешать ему проверять возможность входа. Затем, конечно, выйдите из системы и удалите все данные / учетные данные сеанса пользователя.

    Проблемы:
  2. Люди не собираются сходить с ума от идеи раскрытия своих полномочий сторонней системе.
  3. Передача информации для входа в систему вполне может быть против многих соглашения ToS на веб-сайте.
  4. От этой мысли меня тошнит.

  5. Предоставьте пользователю хэш и попросите его вставить его в какое-либо поле их общедоступного профиля. Например, поместив «aTWIUqHRgxEpSVaQzCYc» в поле местоположения моей учетной записи переполнения стека, а затем заставив приложение проверить хеш через API или очистку экрана в зависимости от веб-сайта.
    • Это утомительно для более чем одного или двух сайтов.
    • Некоторые сайты не имеют полей сортировки с предоставленной пользователем информацией. Реддит например.

  6. Опять же, предоставьте пользователю хэш, но попросите его отправить этот хэш через систему сообщений веб-сайта на указанную учетную запись пользователя. Процесс сервера обычно проверяет входящие сообщения этой учетной записи, а затем связывает хэш с учетной записью. Это кажется самым простым решением.

Я еще не провел должной осмотрительности, чтобы выяснить, какие варианты могут предоставить OAuth или OpenId, чтобы разумно рассказать о них.

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

1 Ответ

3 голосов
/ 14 января 2011

Я бы пошел с OAuth / OpenID, есть гем под названием omniauth , и он поддерживает широкий спектр внешних провайдеров.Райан Бейтс сделал 3 рейка-передачи о всемогуществе , чтобы вы могли начать там!Это действительно легко запустить и запустить.Если вы следите за рейкастами Райана Бейтса, вы можете разрешить своим пользователям использовать более одного провайдера (например, Twitter, OpenID и Facebook).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...