Как стать автором
Обновить

Комментарии 18

Спасибо за инфу, до этого я не слышал про существование OAuth, надо бы почитать про это.
… кличкой нежно любимого кота..


Ни в SReg, ни в AX такого поля пока, слава Бёрнсу, нет :)

Кстати, последний таки советую добавить. Потому как многие провайдеры отказываются от SReg в пользу AX (например Яндекс, myopenid и пр). И не плохо было бы уметь получать данные из обоих вариантов.

А за статью — спасибо.
многие провайдеры отказываются от SReg в пользу AX (например Яндекс


Откуда такая информация?
ну и как, у вас получилось уговорить Google отдавать данные через SReg? буквально вчера он хотел передавать атрибуты только через AX, соответственно, с прелестными запросами идентификаторов вида: axschema.org/contact/email
Нет, не получилось :) Работает только аутентификация. Но еще разберусь, скорее всего, потому что это направление сейчас меня довольно сильно интересует.
ну так а что же вы вставляете в код, как будто так и надо? :-))

email = sreg_response.get('email', u'')

народ ведь будет честно копировать, а потом удивляться, почему при авторизации с gmail не подхватывается даже e-mail :-)

собственно, нужно следующее для того, чтобы запросить AX-данные — на этапе формирования запроса:

import openid.extensions.ax as ax
ax_request = ax.FetchRequest()
ax_request.add (ax.AttrInfo ('http://axschema.org/contact/email'))
authrequest.addExtension(ax_request)


на этапе проверки:

ax_response = ax.FetchResponse.fromSuccessResponse(info)
email = ax_response.get('http://axschema.org/contact/email', u'')


код пишу без тестирования, но что-то в этом духе должно работать :-) какие еще атрибуты отдает гугл — написано вот тут: code.google.com/apis/accounts/docs/OpenID.html#Parameters

удачи :-))
Спасибо, добавил ссылку в пост для таких же интересующихся, как я :)
я ничего не понял из выше написанно, но это офигенно!
Гляньте в код python-openid. Лично мне очень захотелось его переписать. И это при то, что я лично его не сильно касался…
ИМХО, очень плохо написано. Ждём другой, более приятной либы. Ну или глобального рефакторинга с тотальным документированием.
Да, python-openid ужасен, у меня сложилось впечатление что писал либу ява кодер, который просто выучил синтаксис питона, но не удосужился почитать хотя бы pep8. Но как сказал Сагалаев — python-openid точно реализует спецификацию.
дословный перевод на русский «Write you some OpenId...» звучит весьма коряво…
Тогда уж не you, а yourself, а название я не переводил, а придумал сам :)
Не спорю, но это американизм и по русски он не звучит.

Также не забываем о Learn you a Haskell… и Learn you some Erlang for geat good.

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

Я не говорю, что вы перевели, это просто оно так воспринимается.
у каждого свое восприятие. А мне просто захотелось немного похулиганить, вот и все
Есть ещё один малоизвестный метод для пользователей Гугла. Можно в любой html файл(обычно в корневой индекс) прописать 2строки которые дадут тот же операйди:
<link rel="openid2.provider" href="https://www.google.com/accounts/o8/ud?source=profiles" >
<link rel="openid2.local_id" href="http://www.google.com/profiles/[username или id]" >
Если же какая-то дополнительная информация требуется прямо кровь из носу, то можно запросить ее в required, но если сервер ее не отдаст — будет ошибка.


Насколько я помню никакой ошибки не будет и вообще никакой разницы между optional там нет. Может это на будущее оставили, а может баг такой был.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории