web应用程序如何将用户重定向到谷歌进行身份验证,并在指向谷歌OAuth 2.0端点的URL参数中包含签名请求?
例如,如何将以下明文请求转换为签名和加密的请求?
https://accounts.google.com/o/oauth2/auth?client_id=424911365001.apps.googleusercontent.com&response_type=代码&scope=openid%20email&重定向uri=https://oa2cb.example.com/&state=security_token%3D138r5719ru3e1%26url%3Dhttps://oa2cb.example.com/myHome&登录提示=jsmith@example.com&openid=realm=example.com&hd=example.com
您不能重定向URI只是将身份验证返回到的页面的位置,也就是可以处理调用的位置。它必须是一个静态页面,路径。
它在谷歌开发者控制台中明确说明
每行一个URI。需要有一个协议,没有URL片段,并且没有相对路径。不能是非专用IP地址。
有效重定向URI
http://localhost/authorize/
http://localhost/google-api-php-client-samples/PlusLogin/index.php
http://test.daimto.com/Oauth2.php
http://WWW.daimto.com/Oauth2.php
Oauth2示例:
https://accounts.google.com/o/oauth2/auth?client_id={clientid}.apps.googleusercontent.com&redirect_uri=http://localhost/google-api-php-client-samples/Analytics/Oauth2.php &scope=https://www.googleapis.com/auth/analytics.readonly&response_type=code
由于谷歌不支持,目前无法向谷歌的授权端点发送签名(或加密)身份验证请求。
然而,谷歌的身份验证协议符合OpenID Connect,该规范有一个可选功能,允许发送JWT表示的身份验证请求,JWT可以是签名和/或加密的JSON对象。请参阅:http://openid.net/specs/openid-connect-core-1_0.html#RequestObject未来谷歌可能会开始支持这一功能,但目前还没有。