问题标签 [google-identity]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1717 浏览

google-oauth - 谷歌登录更改语言

我已经集成了一个基本的登录,就像这里提到的:

https://developers.google.com/identity/sign-in/web/devconsole-project

现在我想更改按钮的语言(“登录”),而不使用带有自己图像的自定义按钮

我已经尝试过了,但它不起作用:

[就像使用 platform.js 的其他按钮一样]

感谢您提供任何提示或来自 Google 的反馈。

0 投票
5 回答
13773 浏览

google-signin - 如何刷新过期的谷歌登录登录?

我正在使用 Google 登录。用户访问我的站点并使用 登录gapi.auth2.getAuthInstance().signIn(),或者他们已经登录并且当页面加载(或重新加载)时,我们获取状态。在这一点上,我有一个可以在服务器上验证一个小时的身份令牌。

当用户离开浏览器(例如,一夜之间)时,这个令牌就会过期。gapi.auth2.getAuthInstance().isSignedIn.get()返回 true,但令牌不验证。

我如何登录用户并在他们的会话处于活动状态时让他们保持登录状态(即浏览器尚未关闭)?还是刷新令牌?任何比重新加载页面更优雅的事情......

编辑:刷新令牌不是正确答案;我不想离线访问(也不想请求许可)。谷歌显然认为用户仍然登录我的应用程序;用户无需再次提供凭据即可重新加载页面并获取新令牌。肯定有比隐藏 iframe 更优雅的机制来获取更新的令牌吗?

0 投票
1 回答
461 浏览

javascript - 如何在浏览器中为 JS 代码获取长期存在的身份提供程序令牌

我正在使用 Fb、Amazon、Twitter、google 和 cognito 实现 Js 浏览器端代码登录。

已经到了可以获取所有 4 个客户端令牌的阶段,但问题是这些令牌是短暂的,并且会在 1-2 小时内到期。

研究表明 Google 令牌仅持续 1 小时,延长寿命需要服务器端代码。

FB 令牌持续 2 小时,自动刷新,但仅在用户登录时。下次用户回来时(比如 2 天后),令牌将过期。再一次,这需要服务器端代码来获得更长寿的令牌。

Amazon 令牌有效期为 1 小时,Twitter 令牌不会过期。

感谢所有帮助(文档链接、经验等)。

浏览器上的 JS(不是 node.js)

使用 Cognito,但 AFAIK 它与令牌的寿命没有任何关系。

也欢迎指正。

0 投票
1 回答
935 浏览

javascript - 如何使用带有重定向而不是新窗口的 Google 签名?

我正在使用带有 Google Cloud Endpoints 的 Google App Engine (Java)。我想使用 Endpoint 的内置身份验证,并且使用Google Sign-In for Websites成功地做到了这一点。

您能否更改登录按钮的行为,以便在单击该按钮时将用户重定向到 Google 登录页面并返回,而不是打开一个新窗口?这将真正改善用户体验,尤其是对于移动设备。

另外,是否可以将未登录的用户自动重定向到登录页面?

0 投票
2 回答
1888 浏览

google-api - 尝试获取访问令牌 googleapi 时出现 Invalid_grant 错误

我正在按照这里的步骤。我authorization code在浏览器中有,但得到一个:

** 访问错误:协议错误:“服务器错误:HTTP/1.0 400 Bad Request”

当我生成请求以尝试获取我的令牌时。我将目标更改为 http,以便我可以在 wireshark 中跟踪 http 请求,并通过添加换行得到它:

这对我来说看起来不错。

当我改用 http 时,我收到此消息

但不幸的是,它并没有告诉我我的请求是否会帮助我处理 ssl 请求。

PS:我进步了。我从 redirect_uri 中删除了 URL 编码,现在我收到了 invalid_grant 错误。在此之前,它抱怨redirect_uri 缺少方案。

有一次我成功获得了访问令牌,但我无法重现这一点。我看到我的应用程序列在我已授予访问令牌的应用程序中。我删除了我的应用程序并尝试再次授予,但一直失败。

我的时钟是正确的,所以这不是问题。oauth2 游乐场工作正常,据我所知,我也在做同样的事情,但没有成功。

我的是一个已安装的应用程序,因此我无法将我的凭据提供给操场,以作为信任未提供其 redirect_uri 的一种方式,并且我收到错误消息。

0 投票
1 回答
2492 浏览

java - 使用后端服务器进行 Google 身份验证所需的范围

我正在按照这些说明https://developers.google.com/identity/sign-in/android/backend-auth)获取要发送到我的后端的 ID 令牌,但是当我设置时String scopes = "audience:server:client_id:" + Service.SERVER_CLIENT_ID;(是的,SERVER_CLIENT_ID这不是 Android客户 ID)我未能获得令牌并引发此错误。

E/Login: com.google.android.gms.auth.GoogleAuthException: Unknown

但是,当我改用以下范围时 String scopes = "oauth2:profile email";

我成功获得了“a”令牌,但它没有我预期的那么长,我担心它可能是错误的。

我的问题是...

1)为什么scopes = "audience:server:client_id:" + SERVER_CLIENT_ID;指南中使用的不起作用?

2) 我使用String scopes = "oauth2:profile email";安全的令牌在后端验证用户是否获得了令牌?

代码如下。

0 投票
0 回答
370 浏览

javascript - 为内部 Web 应用程序使用 Google 登录

我正在尝试使用 Google Sign-in Web API 使用户能够登录到内部网络 Web 应用程序。该应用程序永远不会公开托管。

我从http://localhost一切正常,但是当用户通过网络(通过 IP 即http://10.24.122.34/)访问网络应用程序时,Google 登录给了我一个 400 错误:invalid_request .

我将 IP 地址设置为授权的 Javascript 来源,但仍然收到 400 错误

有没有办法让谷歌登录在本地网络上工作?

0 投票
1 回答
4828 浏览

google-api - Google 登录 API:isSignedIn.get() 返回不一致的值

我正在尝试检查用户是否已登录,但我得到的结果非常不一致,似乎涉及某种竞争条件。我基本上拿了代码谷歌开发者网站

出于某种原因,前两个返回 false,第二个返回 true。我已经仔细检查过,并且我已登录,所以前两个似乎应该返回 true。我想念她什么?我查看了文档,似乎没有任何迹象表明发生了异步事件,而且我不确定在从isSignedIn调用中获得可靠结果之前我应该​​等待什么。

0 投票
32 回答
54111 浏览

android - 新的 Google 登录 Android

我正在尝试使用新的 Google Play 服务 8.3 获取用户令牌 ID,据记录,我传递了服务器 ID:

但我仍然没有成功的结果如下:

并记录在这里GoogleSignInStatusCodes

用户取消了登录。即用户取消了一些登录解决方案,例如帐户选择或 OAuth 同意。

常数值:12501

那不是我的情况,因为我已经选择了一个帐户。知道可能是什么原因吗?

0 投票
1 回答
1267 浏览

node.js - 将 OAuth 2.0 用于已安装的应用程序

我正在编写一个需要访问用户 Google 表格的命令行工具(installedApp)。为此,我需要从用户那里获取访​​问令牌。

我遵循这些准则OAuth2InstalledApp。到目前为止,我设法通过使用http://localhostredirect_uri 的类型来获取授权码。我指定http://localhost:7373/authorizationCode为 redirect_uri,我有一个本地服务器在端口 7373 上侦听。

但是,当我发出获取访问令牌的请求时,我得到一个 HTTP 400 Bad 请求响应,其中包含

redirect_uri_mismatch 错误

. 当我发出请求时,redirect_uri 被定义为“您从开发者控制台获得的重定向 URI”。这是错误的,因为当您创建已安装的应用程序时,您无法指定重定向 uri(仅适用于 Web 应用程序)。https://infinit.io/_/i48b2rM

所以我的问题是我做错了什么?