У меня есть работающее веб-приложение, в котором уже есть система входа и регистрации. Мне нужен совет, как это сделать.
До сих пор у пользователей есть имя пользователя, адрес электронной почты, пароль и некоторые дополнительные поля. Регистрация - это обычный процесс с подтверждением по электронной почте.
Теперь я хотел бы разрешить пользователям использовать OpenId. Поэтому я добавил поле openid в таблицу. Существует две разные формы входа в систему, и пользователи, которые уже зарегистрированы, могут добавить свою информацию openid и использовать любую форму входа.
Проблема в том, что новые пользователи заходят на сайт впервые и пытаются войти в систему с помощью OpenId. Я создаю нового пользователя для них, и мне не нужен пароль, но все же мне нужно по крайней мере имя пользователя, которое используется на сайте (я не уверен, нужен ли адрес электронной почты).
Итак, мои проблемы:
1) Как мне управлять проверкой? Некоторые поля обязательны для некоторых пользователей (например, пароль), но не для некоторых других. Я имею в виду, я могу сделать это, но это сразу становится грязным.
2) Стоит ли запрашивать имя пользователя и адрес электронной почты при первом входе в систему OpenId? С одной стороны, я бы сказал, да, но я боюсь, что это исчезает преимущества использования OpenId, то есть не нужно
предоставить подробности.
3) Я мог бы получить детали через SReg или AttributeExchange, но большинство провайдеров имеют плохую поддержку для них. Например, моя учетная запись Gmail OpenId не сообщает адрес электронной почты (!). Есть ли место, где можно узнать больше о текущей поддержке этих расширений?