2010-05-21 6 views
0

Это действительно странная проблема: я установил authlogic_openid_selector_example app. Когда я регистрируюсь, идентификатор электронной почты не возвращается первым провайдером openid. Но если я удалю учетную запись и снова зарегистрирую, возвращается идентификатор электронной почты. Как исправить эту проблему? Я разместил здесь свою версию приложения: http://pingauthtest.heroku.com/Authlogic OpenID: получение электронной почты от провайдера

Я просмотрел свой журнал разработки и первый раз, когда провайдер не возвращает openid.ext1.value.ext0, который содержит идентификатор электронной почты. Это возвращается во второй раз только после удаления учетной записи.

Редактировать: Некоторая дополнительная информация для отладки:

THIS IS WHEN IT REGISTERS: 



    OpenIdAuthentication::Association Load (5.3ms) SELECT * FROM "open_id_authentication_associations" WHERE ("open_id_authentication_associations"."server_url" = E'https://www.google.com/accounts/o8/ud') 
Generated checkid_setup request to https://www.google.com/accounts/o8/ud with assocication AOQobUde_9BUnQsk91rb_Sf9tguJ-S7Gpkwahc-nvDGDYAC8nphisNqu 
Redirected to https://www.google.com/accounts/o8/ud? 
openid.assoc_handle=AOQobUde_9BUnQsk91rb_Sf9tguJ-S7Gpkwahc-nvDGDYAC8nphisNqu 

&openid.ax.mode=fetch_request 
&openid.ax.required=ext0 
&openid.ax.type.ext0=http%3A%2F%2Faxschema.org%2Fcontact%2Femail 
&openid.claimed_id=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select 
&openid.identity=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select 
&openid.mode=checkid_setup 
&openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0 
&openid.ns.ax=http%3A%2F%2Fopenid.net%2Fsrv%2Fax%2F1.0 
&openid.ns.sreg=http%3A%2F%2Fopenid.net%2Fextensions%2Fsreg%2F1.1 
&openid.realm=http%3A%2F%2Flocalhost%3A3000%2F 
&openid.return_to=http%3A%2F%2Flocalhost%3A3000%2Faccount%3Ffor_model%3D1%26_method%3Dpost%26open_id_complete%3D1 
&openid.sreg.required=email 
Completed in 3574ms (DB: 14) | 302 Found [http://localhost/account] 

THIS IS WHEN IT USES SESSIONS: 


OpenIdAuthentication::Association Load (5.3ms) SELECT * FROM "open_id_authentication_associations" WHERE ("open_id_authentication_associations"."server_url" = E'https://www.google.com/accounts/o8/ud') 
Generated checkid_setup request to https://www.google.com/accounts/o8/ud with assocication AOQobUde_9BUnQsk91rb_Sf9tguJ-S7Gpkwahc-nvDGDYAC8nphisNqu 
Redirected to https://www.google.com/accounts/o8/ud? 
openid.assoc_handle=AOQobUde_9BUnQsk91rb_Sf9tguJ-S7Gpkwahc-nvDGDYAC8nphisNqu 

&openid.ax.mode=fetch_request 
&openid.claimed_id=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select 
&openid.identity=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select 
&openid.mode=checkid_setup 
&openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0 
&openid.ns.ax=http%3A%2F%2Fopenid.net%2Fsrv%2Fax%2F1.0 
&openid.ns.sreg=http%3A%2F%2Fopenid.net%2Fextensions%2Fsreg%2F1.1 
&openid.realm=http%3A%2F%2Flocalhost%3A3000%2F 
&openid.return_to=http%3A%2F%2Flocalhost%3A3000%2Fuser_session%3Ffor_session%3D1%26_method%3Dpost%26open_id_complete%3D1 

Completed in 2708ms (DB: 15) | 302 Found [http://localhost/user_session] 

ответ

0

Отлично! Я получил это, чтобы работать !! :) Благодаря фиксации на mreinsch.

Адрес URL, для тех, кто хочет, чтобы авторегистрация разрешена: Этот пример приложения разворачивается из приложения @holden. Он еще не поддерживает Facebook. Как только ошибка исправлена, я должен обновить свое репо.

Источник:http://github.com/shripadk/authlogic_openid_selector_example/tree/master

Живой пример: http://testingauth.heroku.com/

Смежные вопросы