Интегрировать OpenId в существующий сайт - PullRequest
2 голосов
/ 20 апреля 2010

У меня есть работающее веб-приложение, в котором уже есть система входа и регистрации. Мне нужен совет, как это сделать.

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

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

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

Итак, мои проблемы:

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

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

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

1 Ответ

2 голосов
/ 04 февраля 2011

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

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

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

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

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

...