我正在尝试使用openID connect来使用代码流对Google进行身份验证。
我正在向Google发送身份验证请求
GET https://accounts.google.com/o/oauth2/v2/auth? client_id=***.apps.googleusercontent.com&
redirect_uri=https%3a%2f%2flocalhost%3a44321%2fAccount%2fConfirmLogin&
response_mode=form_post&
response_type=code&
scope=openid+email+profile&
state=STUFF
nonce=A_NONCE
我收到了GET回复
GET https://localhost:44321/Account/ConfirmLogin?state=STUFF&
code=Some letters&
authuser=0&
hd=my app domain&
session_state=HEX&
prompt=none
根据规范:http://openid.net/specs/openid-connect-core-1_0.html#AuthResponse
使用授权代码流时,授权响应必须返回OAuth 2.0 [RFC6749]第4.1.2节中定义的参数,方法是将它们作为查询参数添加到授权请求中指定的redirect_uri使用 application / x-www-form-urlencoded 格式,,除非指定了不同的响应模式。
从我对规范的阅读中,这意味着谷歌应该将POST返回到我的服务器而不是GET?
答案 0 :(得分:0)
http://openid.net/specs/oauth-v2-form-post-response-mode-1_0.html中定义的form_post
响应模式支持是可选的,Google不支持。因此,该参数被忽略。