Гибридный Google OpenID + логин OAuth не запрашивает OAuth-доступ - PullRequest
2 голосов
/ 26 июля 2011

Я пытаюсь реализовать гибридный вход в систему OpenID + OAuth от Google на сайте Google AppEngine.По какой-то причине моя ссылка для входа в систему только предлагает пользователю предоставить доступ для входа в систему через свою учетную запись Google (OpenID).Он не запрашивает доступ к контактам / документам / и т. Д. (OAuth).

В примере на сайте Google этот URL используется для входа в систему:

https://accounts.google.com/o/openid2/auth?
openid.ns=http://specs.openid.net/auth/2.0&
openid.claimed_id=http://specs.openid.net/auth/2.0/identifier_select&
openid.identity=http://specs.openid.net/auth/2.0/identifier_select&
openid.return_to=http://googlecodesamples.com/hybrid/index.php&
openid.realm=http://googlecodesamples.com&
openid.mode=checkid_setup&
openid.ns.ui=http://specs.openid.net/extensions/ui/1.0&
openid.ns.ext1=http://openid.net/srv/ax/1.0&
openid.ext1.mode=fetch_request&
openid.ext1.type.email=http://axschema.org/contact/email&
openid.ext1.type.first=http://axschema.org/namePerson/first&
openid.ext1.type.last=http://axschema.org/namePerson/last&
openid.ext1.type.country=http://axschema.org/contact/country/home&
openid.ext1.type.lang=http://axschema.org/pref/language&
openid.ext1.required=email,first,last,country,lang&
openid.ns.oauth=http://specs.openid.net/extensions/oauth/1.0&
openid.oauth.consumer=googlecodesamples.com&
openid.oauth.scope=http://docs.google.com/feeds/+http://spreadsheets.google.com/feeds/+http://www-opensocial.googleusercontent.com/api/people/

Нажмите здесь, чтобы перейти по ссылкевыше

Если вы нажмете на ссылку, обратите внимание, как она запрашивает доступ к электронной почте / стране / языку, в дополнение к документам и контактам.

Если я заменим эти 3 параметра на моизначения:

openid.return_to=http://2.myapp.appspot.com&
openid.realm=http://*.myapp.appspot.com&
openid.oauth.consumer=myapp.appspot.com&

По-прежнему отображается страница входа в систему, но запрашивается только адрес электронной почты / страна / язык ... без упоминания документов / контактов.

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

1 Ответ

4 голосов
/ 26 июля 2011

Чтобы гибридный запрос считался действительным, потребитель oauth2 и область OpenID2 должны «совпадать». В этом случае область будет соответствовать некоторому значению для потребителя, например 2.myapp.appspot.com, но не myapp.appspot.com

Одним из возможных решений было бы также зарегистрировать «2.myapp.appspot.com» в качестве пользователя OAuth2.

...