Я работаю над небольшим приложением Rails, в котором я хотел бы, чтобы пользователи могли доказать, что учетные записи, которые они имеют на других сайтах, Live Journal, Stack Overflow, Reddit и т. Д., На самом деле принадлежат им.
Может ли кто-нибудь дать какое-нибудь руководство о том, как лучше всего достичь чего-то подобного?
Я обрисовал в общих чертах некоторые возможные варианты подтверждения учетной записи.
- Попросите пользователей в основном передавать свои учетные данные для входа в приложение через SSL и разрешать ему проверять возможность входа. Затем, конечно, выйдите из системы и удалите все данные / учетные данные сеанса пользователя.
Проблемы:
- Люди не собираются сходить с ума от идеи раскрытия своих полномочий сторонней системе.
- Передача информации для входа в систему вполне может быть против многих
соглашения ToS на веб-сайте.
- От этой мысли меня тошнит.
- Предоставьте пользователю хэш и попросите его вставить его в какое-либо поле их общедоступного профиля. Например, поместив «aTWIUqHRgxEpSVaQzCYc» в поле местоположения моей учетной записи переполнения стека, а затем заставив приложение проверить хеш через API или очистку экрана в зависимости от веб-сайта.
- Это утомительно для более чем одного или двух сайтов.
- Некоторые сайты не имеют полей сортировки с предоставленной пользователем информацией. Реддит например.
- Опять же, предоставьте пользователю хэш, но попросите его отправить этот хэш через систему сообщений веб-сайта на указанную учетную запись пользователя. Процесс сервера обычно проверяет входящие сообщения этой учетной записи, а затем связывает хэш с учетной записью. Это кажется самым простым решением.
Я еще не провел должной осмотрительности, чтобы выяснить, какие варианты могут предоставить OAuth или OpenId, чтобы разумно рассказать о них.
Я понимаю, что головная боль, связанная с необходимостью проверки учетных записей таким образом, может стать препятствием для входа. Не только это, но и отсутствие единого последовательного метода для этого.