Нужно посоветовать несколько методов входа в веб-приложение - PullRequest
0 голосов
/ 01 ноября 2010

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

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

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

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

Разрешить несколько методов входа

У пользователей будет одна учетная запись, но несколько способов входа. Скажем,У пользователя есть собственная учетная запись с именем «joedirt», связанная с адресом электронной почты «joe@dirt.com».Далее, этот пользователь не входит в систему, используя собственный метод, но выбирает способ Twitter.В твиттере его также называют "joedirt".

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

Что мне здесь делать?Спросите пользователя, который входит в систему с дополнительным методом для его адреса электронной почты?Это был бы единственный способ убедиться, что это касается одного и того же пользователя, верно?

Разрешить только один метод входа, но возможность выбрать один в любое время

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

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

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

1 Ответ

1 голос
/ 02 ноября 2010

Как насчет того, чтобы позволить пользователю "связать" свою учетную запись с другими методами входа, когда он уже вошел в систему? Таким образом, это не будет проблемой, если сторонний поставщик предоставляет только ограниченную информацию (например, имя пользователя Twitter).

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

...