OpenIDConnect代码流和Google

时间:2016-03-05 00:27:19

标签: c# owin openid-connect

我正在尝试使用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?

1 个答案:

答案 0 :(得分:0)

http://openid.net/specs/oauth-v2-form-post-response-mode-1_0.html中定义的form_post响应模式支持是可选的,Google不支持。因此,该参数被忽略。