我们正试图从的OpenID 2.0迁移至OAuth 2.0登录(ID连接)从OpenID的迁移到OAuth 2.0登录(ID连接)2.0
我们通过google docs OpenID 2.0 (Migration)
,我们已经是问题出发即openid_id是在ID令牌请求中没有返回。
首先验证请求:
https://accounts.google.com/o/oauth2/auth?client_id=xxxxxxxxxxxxxxx.apps.googleusercontent.com&response_type=code&scope=openid+email&redirect_uri=http://domain.local/customer/auth-callback&openid.realm=http://domain.local/customer&state=secrettoken
当用户被重定向回我们得到以下PARAMS:
'state' => 'secrettoken',
'code' => 'codeforexchange',
'authuser' => '0',
'num_sessions' => '1',
'session_state' => 'absasd951d57fcc1148f59b6b455ec86045a731c..1de3',
'prompt' => 'none',
然后我们就https://accounts.google.com/o/oauth2/token
交换令牌,我们收到以下:
'access_token' => 'accesstoken',
'token_type' => 'Bearer',
'expires_in' => 3594,
'id_token' => 'idtoken'
当我们尝试解析https://www.googleapis.com/oauth2/v1/tokeninfo
ne上的令牌信息时ither openid_id或总和是存在于docs - Step 3: Map OpenID 2.0 identifiers to OpenID Connect identifiers
响应描述只是(ID令牌):
"issuer": "accounts.google.com",
"issued_to": "xxxxxxxxx-xxxxxxx.apps.googleusercontent.com",
"audience": "xxxxxxxxx-xxxxxxx.apps.googleusercontent.com",
"user_id": "user_id",
"expires_in": 3594,
"issued_at": 1404741485,
"email": "[email protected]",
"email_verified": true
任何人都知道为什么呢?
注:此“domain.local”以前使用通过OpenID 2.0登录因此,我希望openid_id应退还(能够识别用户迁移从OpenID的2.0至OpenidConnect)
有类似的问题这不幸并没有解决我的问题。
不幸的是,正如你在我们的问题中看到的 - 我们提供了id_token(我已经更新了我的问题,以便更清楚)。我想这是一个错误..: -/ – Tomor
该死的。你可能已经看过[这个问题](http://stackoverflow.com/questions/22842475/migrating-google-openid-to-openid-connect-openid-id-does-not-match?rq=1) ,但如果没有,它可能有帮助 – brocknz
是的,我们做到了,但无论如何,谢谢你。 – Tomor