authentication - access_type = Online 什么时候合适? :OAuth2 - Google API

标签 authentication oauth google-api oauth-2.0

请求 OAuth 凭据时,我可以将 access_type 指定为 Offline 或 Online。

选择在线访问类型会强制用户在每次登录时批准对我的应用程序的访问。这是为什么?用户不是已经批准了我的应用程序吗?

更新 #1:

我有我的批准提示设置为“自动”。
如果我只是退出谷歌而不删除任何 cookie,它不会再次提示我。但是删除 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

最佳答案

在这些流程中还有另一个参数起作用,我怀疑您正在遇到它。这是approval_prompt范围。

access_type=online您还可以为 approval_prompt 指定一个值.如果设置为 approval_prompt=force ,您的用户将始终收到提示,即使他们已经授予。

另一方面,当 access_type=offline , approval_prompt只能设置为 approval_prompt=force ,但为了弥补这一限制,您还获得了 refresh_token您可以使用它来刷新您的访问 token 。

检查您的 access_type=online 的 URL正在开放。尝试设置 approval_prompt=auto .授予屏幕应该只出现在第一次。

关于authentication - access_type = Online 什么时候合适? :OAuth2 - Google API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11475101/

相关文章:

email - 我收到来自陌生域的 DMARC 汇总报告 - 这是什么意思?

http - 身份验证在 MAPI/HTTP 中如何工作

asp.net-mvc - MVC 谷歌登录 - OpenID 身份验证请求包含未注册的域

facebook - 如何让 UIWebView 打开 Facebook 登录页面以响应 iOS 5 和 iOS 6 上的 OAuth 请求?

android - 如何使用回调检测穿戴式/手持式 Android 设备是断开连接还是连接?

ruby-on-rails - Rails 4 & Devise - 创建新用户时,用户名不会添加到数据库中

java - 如何在桌面应用程序中实现 java 身份验证

xcode - 在 Xcode 3.2 中使用第三方框架时出现问题

python - 如何使用python使用google API从gmail获取电子邮件主题?

python-3.x - 在python中使用谷歌音译api