Руководство по потоку для формы регистрации Openid - PullRequest
2 голосов
/ 30 декабря 2010

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

(1) Сперва, запросите URL-адрес OpenId, перенаправьте и подтвердите через поставщика OpenId, а затем вернитесь на мой сайт и введите дополнительную информацию.Это позволяет мне предварительно заполнить вторую форму, если информация будет возвращена от поставщика OpenId, что является плюсом, но минусы включают, где хранить идентификатор, возвращенный провайдером ** и имеющим многоэтапный процесс регистрации, который может отталкивать.

(2) Одна форма, которая отображает всю необходимую информацию, включая URL-адрес поставщика OpenId.При отправке сохраните информацию в БД, перенаправьте в OpenId, подтвердите и при возврате от провайдера обновите запись БД, включив в нее идентификатор.Это проще, но означает, что я никогда не использую какую-либо дополнительную информацию, возвращаемую поставщиком OpenId, так как форма заполняется до аутентификации.

Я действительно только после некоторых идей / мыслей относительно лучшего подхода?Я использую DotNetOpenAuth с ASP.NET MVC 3, если это имеет какое-либо значение.

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

Ответы [ 2 ]

1 голос
/ 05 января 2011

Получите лучшее из обоих миров!

Извлеките этот образец , который демонстрирует наличие только одной формы, которая принимает как OpenID, так и адрес электронной почты (и вы можете представить произвольное количество других полей). После ввода идентификатора (сначала) ваш сайт немедленно начинает процесс обнаружения OpenID в фоновом режиме, пока пользователь вводит дополнительные сведения. Для нового пользователя это, скорее всего, не приведет к полному входу в систему с деталями, поэтому пользователь нажимает кнопку для продолжения аутентификации, которая после завершения заполняет детали, которые OP предоставляет автоматически. Затем пользователь может изменить их при желании и, наконец, нажать кнопку «Создать учетную запись сейчас».

0 голосов
/ 04 января 2011

Я прохожу это сам и выбрал вариант (1) - выполнить танец OpenId, получить все поля, доступные у провайдера, а затем попросить пользователя заполнить пробелы.

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

...