我正在尝试使用OAuth 2.0登录Google。获得临时授权码然后使用它来获取access_token
后,Google不会将我重定向到我发布时设置的网址,这是我发布的代码:
<form action="https://accounts.google.com/o/oauth2/token" method="post">
<input type="text" name="code" value='##code##'/>
<input type="text" name="client_id" value='##client_id##'/>
<input type="text" name="client_secret" value='##client_secret##'/>
<input type="text" name="redirect_uri" value='http://boomroom.tv/test.php'/>
<input type="text" name="grant_type" value='authorization_code'/>
<input type="submit" /></form>
我在JSON中获得access_token后,它不会将我重定向到我的网址,但请保留在页面“https://accounts.google.com/o/oauth2/token”中,我不知道为什么。我做错了吗?
答案 0 :(得分:2)
exchange authorization code for an access token step中没有涉及重定向。您应该在此处使用服务器端POST请求,您可以在其中获得访问令牌和刷新令牌作为直接响应。在您的示例中,用户的浏览器将发送此类请求,但不会侦听其响应。
请注意,您的客户端密码可以在您网站的源代码中公开访问。
使用PHP执行服务器端POST请求有多种方法,例如: using cURL
答案 1 :(得分:1)
如果您想在服务器端执行此操作,Jan的回复是正确的。
如果您想在浏览器中处理客户端的事情,可以使用单独的OAuth 2 for Web Applications流程:
适用于JavaScript的Google API客户端库可让您轻松实现此目标:
https://code.google.com/p/google-api-javascript-client/wiki/Authentication
还有一个可以播放的实时样本/借用以下代码:
http://gdata-samples.googlecode.com/svn/trunk/gdata/youtube_upload_cors.html