получать электронную почту, используя openid и python - PullRequest
1 голос
/ 16 февраля 2011

Я пытаюсь получить адрес электронной почты из запроса OpenId, используя следующую форму ниже и web.py.Я получаю обратно хэш OpenId, но я не вижу ничего связанного с электронной почтой в моей среде apache - просто openid_identity_hash.

Это моя HTML-форма с использованием web.py.

<input type="text" name="openid" value="" style="background: url(http://openid.net/login-bg.gif) no-repeat; padding-left: 18px; background-position: 0 50%%;" />
<input type="hidden" name="return_to" value="${returnUrl}" />
<input type="hidden" name="openid.ns.ext1" value="http://openid.net/srv/ax/1.0" />
<input type="hidden" name="openid.ext1.mode" value="fetch_request" />
<input type="hidden" name="openid.ext1.type.email" value="http://axschema.org/contact/email" />
<input type="hidden" name="openid.ext1.required" value="email" />

Глядя на документы, связанные с сайтом разработчиков Google с OpenID, я обнаружил, что эти атрибуты включены, что, как мне кажется, я делаю.

openid.ns.ax=http://openid.net/srv/ax/1.0
openid.ax.mode=fetch_request
openid.ax.type.fname=http://example.com/schema/fullname
openid.ax.type.gender=http://example.com/schema/gender
openid.ax.type.fav_dog=http://example.com/schema/favourite_dog
openid.ax.type.fav_movie=http://example.com/schema/favourite_movie
openid.ax.count.fav_movie=3
openid.ax.required=fname,gender
openid.ax.if_available=fav_dog,fav_movie
openid.ax.update_url=http://idconsumer.com/update?transaction_id=a6b5c4

Но на самом деле он никогда не просит утвердить запрос по электронной почте, и я не вижу его в своей среде.Web.py просто не поддерживает это?Могу ли я использовать что-то еще, например, authkit, чтобы потом отправить запрос по электронной почте?

1 Ответ

0 голосов
/ 17 февраля 2011

@ voodo, попробуйте установить эти значения.

openid.ns=http://specs.openid.net/auth/2.0&
openid.ns.alias3=http://openid.net/srv/ax/1.0&
openid.alias3.if_available=alias1,alias2,alias3&
openid.alias3.required=alias4&
openid.alias3.mode=fetch_request&
openid.alias3.type.alias1=http://schema.openid.net/namePerson&
openid.alias3.count.alias1=1&
openid.alias3.type.alias2=http://schema.openid.net/contact/email&
openid.alias3.count.alias2=1&
openid.alias3.type.alias3=http://axschema.org/namePerson&
openid.alias3.count.alias3=1&
openid.alias3.type.alias4=http://axschema.org/contact/email&
openid.alias3.count.alias4=1

Я не уверен, почему это работает, а чистая схема AX - нет, хотя в XRDS от Google указано, что он поддерживает схему AX

...