在请求 OAuth 凭据时,我可以将 access_type 指定为 Offline 或 Online。
选择在线访问类型会强制用户在每次登录时批准对我的应用程序的访问。这是为什么?用户不是已经批准了我的应用程序吗?
更新#1:
我将approval_prompt 设置为“自动”。
如果我在不删除任何 cookie 的情况下退出 Google,它不会再次提示我。但是删除 cookie 会返回授权屏幕。
更新#2:
它通过 OAuth Playground 运行良好。 http://code.google.com/oauthplayground/
将 OAuth 2.0 用于 Web 服务器应用程序 https://developers.google.com/accounts/docs/OAuth2WebServer
更新#3: 相关代码片段
生成 OAuth URL 的辅助方法
def build_auth_uri
return @client.authorization.authorization_uri(
:access_type => :online,
:approval_prompt => :auto
).to_s
end
在 View 中调用 Helper 方法
<a href="<%= build_auth_uri %>"> Connect Me! </a>
在网页上生成的 OAuth URL
https://accounts.google.com/o/oauth2/auth?access_type=online&approval_prompt=auto&redirect_uri=http://localhost:3000/gclient/gcallback&response_type=code