我有一个带有OAuth 2.0身份验证的Google App.一切都习以为常,但最近我开始获得以下"请求许可"屏幕:

奇怪的是,当我通过时,我得到了这个屏幕access_type=online.再次,这曾经工作到最近.
这可能是什么原因?TIA
编辑:
要求的范围是:
https://www.googleapis.com/auth/userinfo.email
https://www.googleapis.com/auth/userinfo.profile
Run Code Online (Sandbox Code Playgroud)
我已经尝试过了:
access_type=onlineapproval_prompt=auto编辑#2:
这是我用来生成身份验证URL的python代码:
encoded_params = urllib.urlencode({
"response_type" : "code",
"client_id" : MY_CLIENT_ID,
"scope" : " ".join(MY_SCOPES),
"redirect_uri" : MY_REDIRECT_URI,
"state" : random_security_token,
"access_type" : "online",
"approval_prompt" : "auto",
})
auth_url = "https://accounts.google.com/o/oauth2/auth?" + encoded_params
Run Code Online (Sandbox Code Playgroud)
更新(10月14日):
即使使用新的范围,我仍然会获得同意屏幕.最近我得到了一个我用于身份验证的新设备.
在我的网站上,我想允许用户使用Google帐户登录.我打算使用openid,但我想允许使用google登录,因为它有更多好处.我曾经注意到一些网站能够使用google(gmail)帐户和IIRC登录,虽然他们不支持openID(但我可能错了).
如何实施"使用谷歌登录"?
我们有一个独立的Java应用程序(请参阅"安装应用程序":https://developers.google.com/accounts/docs/OAuth2)的定期运行,并使用谷歌API(从客户数据库/ LDAP更新一些信息/ ...) .
要访问Google API,我们会在配置文件中存储用户名和密码,这是一种安全风险,客户不喜欢这样做.因此,我们希望使用OAuth2长期访问令牌.
Google OAuth2访问令牌的默认到期时间是什么时候?
由于我们在应用程序中只有访问令牌,因此当访问令牌到期时,应用程序本身无法刷新它...
我个人认为在这种情况下OAuth2的实现不会带来任何重大好处,但让我们关注主要问题 - 默认的到期时间.
security google-api oauth-2.0 google-api-java-client google-oauth
我正在使用我自己的个人Google帐户玩Google的OAuth 2.0 Playground,但我似乎无法使用游乐场恢复我的Gmail地址.
我使用的范围是:
email profile https://www.googleapis.com/auth/plus.login
Run Code Online (Sandbox Code Playgroud)
但是当我调用API时:
https://www.googleapis.com/oauth2/v2/userinfo
Run Code Online (Sandbox Code Playgroud)
我得到有关用户的各种信息,如姓氏,名字,性别,图片等,但它不会返回用户的电子邮件.
如何检索用户的电子邮件地址?我是否有错误的范围或我是否使用了错误的API?我觉得这应该很简单,但我确实试图解决这个问题几个小时,我找不到一直提供用户电子邮件地址的API和范围组合.
是否有一种方法可以强制Google帐户选择器出现,即使用户只使用一个帐户登录也是如此.
我试过重定向到这个URL:
https://accounts.google.com/AccountChooser?service=lso&continue=[authorizeurl]
Run Code Online (Sandbox Code Playgroud)
它似乎工作,但我不知道是否有任何其他条件可能会失败.

我们有一些应用程序(或者也许我们应该称它们为一些脚本)使用 Google API 来促进一些管理任务。最近,在同一项目中创建另一个 client_id 后,我开始收到一条错误消息,类似于localhost redirect_uri does not work for Google Oauth2 (results in 400: invalid_request error)中描述的错误消息。IE,
\n\n\n错误 400:无效的请求
\n您无法登录此应用,因为它不符合 Google\nOAuth 2.0 确保应用安全的政策。
\n您可以让应用开发者知道此应用不符合\n一个或多个 Google 验证规则。
\n请求详情:
\n此部分中的内容由应用开发者提供。\n此内容未经 Google 审核或验证。
\n如果您\xe2\x80\x99是应用开发者,请确保这些请求详细信息\n符合 Google 政策。
\n重定向_uri:瓮:ietf:wg:oauth:2.0:oob
\n
我该如何解决这个错误?需要注意的是:
\nurn:ietf:wg:oauth:2.0:oob重定向 URI(复制/粘贴是在没有浏览器的无头计算机上运行此脚本的唯一友好方法)。当我尝试将oauth2用于googleapi时,我得到了以下结果.只有一件事:我找不到文档中使用的id_token .
{ "access_token" : "xxxx", "token_type" : "Bearer", "expires_in" : 3600, "id_token" : "veryverylongstring", "refresh_token" : "abcdefg"}
Run Code Online (Sandbox Code Playgroud) 我尝试按照Google OAuth2ForDevices实施Google oauth .
我的应用程序已在Google Cloud Console上注册为本机应用程序.当我尝试使用Google Chromes - Advanced Rest Client Application关注OAuth2ForDevices时,我会收到带有user_code和verfication_url的json响应.打开verfication_url并输入user_code会导致以下错误:
invalid_client:没有支持电子邮件错误400
我在Google云端控制台上使用了两个注册的应用尝试了此操作.两者都导致同样的错误.
Anys提示,如何解决这个问题?我是否必须support email在谷歌云服务中注册?
我正试图从我的基于Java的网络应用程序上传到YouTube,我花了几天时间来了解问题的原因和地点,我无法得到它,因为现在我正在把头发拉出来.
我在Google控制台中注册了我的网络应用程序,因此我获得了一对客户端ID和密码以及使用我的配置下载JSON类型文件的可能性.
所以这是配置:
{
"web":{
"auth_uri":"https://accounts.google.com/o/oauth2/auth",
"client_secret":"***",
"token_uri":"https://accounts.google.com/o/oauth2/token",
"client_email":"***",
"redirect_uris":["http://localhost:8080/WEBAPP/youtube-callback.html","http://www.WEBAPP.md/youtube-callback.html"],
"client_x509_cert_url":"***",
"client_id":"***",
"auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs",
"javascript_origins":["http://www.WEBAPP.md/"]
}
}
Run Code Online (Sandbox Code Playgroud)
我如何从Google获取默认网址?
The redirect URI in the request: http://localhost:8080/Callback did not match a registered redirect URI
它总是给我默认的http://localhost:8080/CallbackURL而不是我的.
IDE控制台告诉我:
Please open the following address in your browser:
https://accounts.google.com/o/oauth2/auth?client_id=***&redirect_uri=http://localhost:8080/Callback&response_type=code&scope=https://www.googleapis.com/auth/youtube.upload
Attempting to open that address in the default browser now...
我使用的是最新版本的依赖项: google-api-services-youtube v3-rev99-1.17.0-rc和google-api-services-youtubeAnalytics v1-rev35-1.17.0-rc
java youtube-api google-oauth youtube-data-api google-oauth-java-client
我正在尝试设置需要用户谷歌纵横信息的网络服务,因此我使用Google OAuth获取用户授权内容.
但是,当尝试在Google API控制台中为Web应用程序客户端ID设置重定向URI时,如果我尝试将其设置为"http:// PUBLIC_IP /",则会收到错误消息.
我需要使用非本地用户进行测试(因此无法使用localhost),因此我想知道是否必须拥有Web域才能使用Google的OAuth.如果没有,我该如何解决这个问题?
google-oauth ×10
oauth-2.0 ×5
google-api ×2
cross-domain ×1
device ×1
email ×1
gmail ×1
google-plus ×1
java ×1
login ×1
oauth ×1
openid ×1
security ×1
youtube-api ×1