2010-04-20 4 views
2

У меня есть рабочее веб-приложение, у которого уже есть система регистрации и регистрации. Я ищу некоторые советы о том, как это сделать.Интегрируйте OpenId в существующий сайт

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

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

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

Так что мои проблемы:

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

2) Должен ли я попросить имя пользователя и адрес электронной почты при первом входе в OpenId? С одной стороны, я бы сказал, да, но я боюсь, что это исключает преимущества использования OpenId, то есть не обязательно, чтобы предоставил детали.

3) Я мог бы получить информацию через SReg или AttributeExchange, но большинство провайдеров имеют плохую поддержку для них. Например, моя учетная запись Gmail OpenId не сообщает адрес электронной почты (!). Есть ли какое-то место, чтобы узнать больше о текущей поддержке этих расширений?

ответ

2

статья о том, как интегрировать OpenID в существующий сайт, находится в www.paxo.com.

Некоторые быстрые решения для ваших probems являются:

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

2) Вы можете получить электронную почту через обмен атрибутами OpenID. Я не стал бы запрашивать имя пользователя или любые другие данные, которые не нужны. Но я бы предоставил возможность пользователю установить/изменить это после его регистрации.

3) Неверно, что Gmail не сообщает вам электронное письмо. (Official Google Docs, Attribute Exchange with lightopenid). Вы должны добавить адрес в качестве требуемого значения. Я не знаю, что сайт отличался поддержкой провайдеров OpenID для обмена атрибутами. Вот Yahoo-Article об их поддержке AX.

+0

Мне уже удалось сделать эту работу, но большое спасибо за интересную ссылку и за ваши комментарии! :-) – Andrea