Comments 18
Спасибо за инфу, до этого я не слышал про существование OAuth, надо бы почитать про это.
0
… кличкой нежно любимого кота..
Ни в SReg, ни в AX такого поля пока, слава Бёрнсу, нет :)
Кстати, последний таки советую добавить. Потому как многие провайдеры отказываются от SReg в пользу AX (например Яндекс, myopenid и пр). И не плохо было бы уметь получать данные из обоих вариантов.
А за статью — спасибо.
+1
Google Profile это и есть OpenID-идентификатор (например: google.com/profiles/mrgallua)
0
ну и как, у вас получилось уговорить Google отдавать данные через SReg? буквально вчера он хотел передавать атрибуты только через AX, соответственно, с прелестными запросами идентификаторов вида: axschema.org/contact/email
0
Нет, не получилось :) Работает только аутентификация. Но еще разберусь, скорее всего, потому что это направление сейчас меня довольно сильно интересует.
0
ну так а что же вы вставляете в код, как будто так и надо? :-))
народ ведь будет честно копировать, а потом удивляться, почему при авторизации с gmail не подхватывается даже e-mail :-)
собственно, нужно следующее для того, чтобы запросить AX-данные — на этапе формирования запроса:
на этапе проверки:
код пишу без тестирования, но что-то в этом духе должно работать :-) какие еще атрибуты отдает гугл — написано вот тут: code.google.com/apis/accounts/docs/OpenID.html#Parameters
удачи :-))
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
удачи :-))
+5
я ничего не понял из выше написанно, но это офигенно!
-2
Гляньте в код python-openid. Лично мне очень захотелось его переписать. И это при то, что я лично его не сильно касался…
ИМХО, очень плохо написано. Ждём другой, более приятной либы. Ну или глобального рефакторинга с тотальным документированием.
ИМХО, очень плохо написано. Ждём другой, более приятной либы. Ну или глобального рефакторинга с тотальным документированием.
0
дословный перевод на русский «Write you some OpenId...» звучит весьма коряво…
-1
Тогда уж не you, а yourself, а название я не переводил, а придумал сам :)
0
Не спорю, но это американизм и по русски он не звучит.
Также не забываем о Learn you a Haskell… и Learn you some Erlang for geat good.
Поверьте, я прочитал много плохих переводов с английского на русский, и сразу вижу дословный перевод жаргонизмов и устойчивых выражений.
Я не говорю, что вы перевели, это просто оно так воспринимается.
Также не забываем о Learn you a Haskell… и Learn you some Erlang for geat good.
Поверьте, я прочитал много плохих переводов с английского на русский, и сразу вижу дословный перевод жаргонизмов и устойчивых выражений.
Я не говорю, что вы перевели, это просто оно так воспринимается.
0
Есть ещё один малоизвестный метод для пользователей Гугла. Можно в любой 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]" >
<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]" >
0
Если же какая-то дополнительная информация требуется прямо кровь из носу, то можно запросить ее в required, но если сервер ее не отдаст — будет ошибка.
Насколько я помню никакой ошибки не будет и вообще никакой разницы между optional там нет. Может это на будущее оставили, а может баг такой был.
0
Разница есть. softwaremaniacs.org/forum/openid/12427/
+2
Sign up to leave a comment.
Пишем себе немного OpenID-авторизации