Как использовать OpenID + OAuth на моем сайте? - PullRequest
2 голосов
/ 04 января 2011

Я хочу войти на свой сайт, используя учетную запись Google, теперь я могу использовать учетную запись Google для входа (по OpenID), но я не знаю, как получить учетную запись пользователя и информацию в Google?Как и в приведенной ниже ссылке (предоставленной Google)

http://googlecodesamples.com/hybrid/

Эта ссылка может войти в систему с помощью учетной записи Google пользователя и перечислить все документы в Google Doc пользователя, поэтому я предполагаюиспользование OAuth может позволить мне получить учетную запись пользователя (например, example@gmail.com) и получить относительную информацию, но я не знаю, как это сделать?

PS.Я использую php, чтобы написать свой сайт

Ответы [ 2 ]

0 голосов
/ 24 апреля 2014

Возможно, вы захотите использовать уже существующее решение для аутентификации, а не изобретать колесо :-) Поскольку вы не указываете, какой язык сценариев сервера вы используете, например, для PHP взгляните на:

http://opauth.org/

Это довольно простая реализация и поддерживает не только учетную запись Google, но и многие другие. Он также извлекает интересующую вас информацию об учетной записи.

... или в Google что-то вроде "openID аутентификационная структура" или "oauth framework": -)

0 голосов
/ 26 января 2011

Я не могу кодировать все это для вас, но я постараюсь дать вам общее описание того, как это делается.

Пример запроса URL:

https://www.google.com/accounts/o8/id
?openid.ns=http://specs.openid.net/auth/2.0
&openid.ns.pape=http://specs.openid.net/extensions/pape/1.0
&openid.ns.max_auth_age=300
&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://www.example.com/checkauth
&openid.realm=http://www.example.com/
&openid.assoc_handle=ABSmpf6DNMw
&openid.mode=checkid_setup
&openid.ui.ns=http://specs.openid.net/extensions/ui/1.0
&openid.ui.mode=popup
&openid.ui.icon=true
&openid.ns.ax=http://openid.net/srv/ax/1.0
&openid.ax.mode=fetch_request
&openid.ax.type.email=http://axschema.org/contact/email
&openid.ax.type.language=http://axschema.org/pref/language
&openid.ax.required=email,language 

Затем вы должны получить этот ответный URL в качестве перенаправления, которое вам нужно перехватить:

http://www.example.com/checkauth
?openid.ns=http://specs.openid.net/auth/2.0 
&openid.mode=id_res
&openid.op_endpoint=https://www.google.com/accounts/o8/ud
&openid.response_nonce=2008-09-18T04:14:41Zt6shNlcz-MBdaw
&openid.return_to=http://www.example.com:8080/checkauth
&openid.assoc_handle=ABSmpf6DNMw
&openid.signed=op_endpoint,claimed_id,identity,return_to,response_nonce,assoc_handle
&openid.sig=s/gfiWSVLBQcmkjvsKvbIShczH2NOisjzBLZOsfizkI=     &openid.identity=https://www.google.com/accounts/o8/id/id=ACyQatixLeLODscWvwqsCXWQ2sa3RRaBhaKTkcsvUElI6tNHIQ1_egX_wt1x3fAY983DpW4UQV_U
&openid.claimed_id=https://www.google.com/accounts/o8/id/id=ACyQatixLeLODscWvwqsCXWQ2sa3RRaBhaKTkcsvUElI6tNHIQ1_egX_wt1x3fAY983DpW4UQV_U 

Как только вы получите этот URL, все готово! Надеюсь, это поможет.

...