问题标签 [google-identity-toolkit]

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 回答
350 浏览

google-identity-toolkit - 在您的 Android 应用程序中使用身份工具包的文档冲突

以下页面https://developers.google.com/identity/toolkit/android/quickstart#step_3_set_up_the_quick-start_app告诉我

取消注释 identitytoolkit.api_key 元数据并将占位符替换为您的 API 密钥。您可以在标题为“ Android应用程序密钥”的公共 API 访问部分中找到您的 API 密钥。

而页面https://developers.google.com/identity/toolkit/android/告诉我相同的步骤

取消注释 identitytoolkit.api_key 元数据并将占位符替换为您的 API 密钥。您可以在标题为“浏览器应用程序密钥”的公共 API 访问部分中找到您的 API 密钥。

两个都试了,结果没区别,就是登陆不了。

我还尝试了不同的组合

取消注释 android:scheme 行并将占位符替换为您的反向服务器客户端 ID。您可以在标题为“ Web 应用程序的客户端 ID ”的 OAuth 部分中找到此 ID 。例如,如果您的服务器客户端 ID 是 123.apps.googleusercontent.com,则将 com.googleusercontent.apps.123 放在这里。

但所有这一切都变得有点连线了。

我什至不知道要问哪些问题才能解决这个问题,但如果文档表明某种值得信赖的“这就是你需要做的”,那就太好了。

Google 的某个人能否仔细检查两个站点中的“修改 AndroidManifest.xml ”部分并解释哪些信息是正确的?我有点困惑为什么我需要向 Android 应用程序添加这么多 Web 应用程序的东西。

提前致谢。

更新:得到它的工作,原来我在控制台中注册了错误的应用程序名称(它是一个不完整的路径)。此外,您使用哪个密钥似乎并不重要(我使用的是“ Android应用程序密钥”。)

0 投票
1 回答
100 浏览

google-identity-toolkit - 无效验证算法 sha256 错误

嗨,我已经配置了 node.js 应用程序,并且在大多数情况下它工作正常。但在登录后的最后一步,我收到此错误: Invalid token: Unable to verify the ID Token: Invalid verify algorithm sha256 我可以看到 gtoken 正在设置。但是我已经没有关于从哪里设置算法的想法了。我没有在任何地方配置它,那么我如何传递一个无效的算法?

有什么建议么 ?

0 投票
1 回答
195 浏览

google-identity-toolkit - Android登录流程(密码登录)混乱

我正在测试 GitKit V3 Android 快速入门,除了密码登录,一切都很好。每次我第一次输入一些随机的电子邮件地址时,登录流程都会提示我一个“创建新帐户”框。登录后,我能够验证令牌以提取电子邮件等。

但是,当我注销(删除我的会话令牌)并使用相同的电子邮件再次登录时,我希望它让我输入我的密码,但它会再次提示我使用“创建新帐户”框。在这里,如果我尝试输入新的名称和密码,该框会抱怨电子邮件已经存在。我不确定为什么会出现这种情况,因为查看示例代码只会将我带到 startSignIn() 方法。

我认为快速入门非常适合我的应用程序,但我想知道是否应该覆盖 UI 管理器并实现自己的登录流程?现在,我正在考虑使用该框抱怨电子邮件存在(当您首次登录后)提示用户输入密码等事实。

难道我做错了什么?

先感谢您!

PS -这里有一个类似的问题,但答案没有帮助。

0 投票
1 回答
292 浏览

java - 使用 Gradle 添加 Google 身份工具包时出错

我正在尝试使用 Gradle 将 Google Identity Toolkit 添加到我在 Android Studio 中的 Google App Engine 后端。但我是 Android Studio 和 Gradle 的新手。

我在后端 build.gradle 中添加了以下内容:

在同步和 gradle 构建之后,我尝试添加一个导入:

但我收到以下错误:

无法解析符号“identitytoolkit”

错误:com.google.identitytoolkit 包不存在

0 投票
2 回答
1749 浏览

google-api - Google API Explorer 和 Google Identity Toolkit API 不工作

我正在尝试使用 Google API Explorer 探索 Google Identity Toolkit API。API 提示“不需要身份验证”,但是当我尝试执行请求时出现错误消息:

如果我尝试使用 OAuth 2.0 切换并授权 API,我会收到 400 错误:

但是 Google Identity Toolkit API 没有声明任何范围。

请问有人可以帮忙吗?

更新: 使用 API Explorer 时遇到的其他错误:尝试执行 getAccountInfo 请求时,我传递了一个填充了 localId 字段的请求正文。我得到的回应是:

0 投票
1 回答
271 浏览

validation - 验证通过第 3 方后端(自定义 python 后端,非 gae)上的 Google Identity Toolkit (GitkitClient) 在 Android 设备上获得的 OAuth2 令牌?

如何验证通过第 3 方后端(自定义 python 后端,非 gae)上的 Google Identity Toolkit (GitkitClient) 在 Android 设备上获得的 OAuth2 令牌?

我可以通过使用 GitkitClient 在 Android 上获取令牌。

但是,我的非 google-app-engine (Python) 后端如何验证此令牌是否有效(来自 Google)?

0 投票
1 回答
420 浏览

session - 为什么要把 GITkit.idToken 换成 Session Token?

GitHub 上的GitkitDemo

现在使用 idToken 为您的用户创建会话。为此,您应该将 idToken 交换为来自服务器的会话令牌或 Cookie。最后,保存 Session Token 或 Cookie 以维护用户的会话。

在Validating OAuth2 token getting on Android device via Google Identity Toolkit (GitkitClient) on 3rd-party backend (custom python backend, non-gae)问题答案的示例代码中?通过 Android 获得的令牌的后端服务器令牌验证似乎足以确保拥有一个有效、安全的令牌,该令牌可以在与后端的任何后续通信期间添加到 Android 客户端标头中。

那么为什么会有推荐you should exchange the idToken for either a Session Token or Cookie from your server呢?

这是由于 idToken 的大小(几乎 1KB,IIRC)吗?

存在哪些建议(最简单和最安全的方式)来生成这样的会话令牌?

除了大小之外,还有其他反对使用 idToken 作为会话令牌的论据吗?

会话令牌可以是 idToken(idToken.split(".")[0]在 Python 中)的第一部分(“令牌”)吗?还是有效载荷 ( idToken.split(".")[1])?或者也许创建 idToken 的 SHA1?编辑:好的,我意识到使用 JTW 标头会很愚蠢,但是有效负载至少有几个变量(iat并且exp可能还有user_id),但是签名?

gitkit.js(“gtoken”)创建的令牌/cookie 是 idToken 本身,是否也应该用会话令牌替换?

0 投票
1 回答
137 浏览

javascript - “网站身份工具包”与“网站身份工具包 v2”(2015 年 8 月)

在搜索“ google identity toolkit javascript ”时,我注意到有两个版本可用。

产品►Google Identity Platform►Identity Toolkit►Identity Toolkit for Websites

产品►Google Identity Platform►Identity Toolkit►Identity Toolkit for Websites v2

如果从Products►Google Identity Platform►Identity Toolkit开始,则无法进入 v2,因为所有内容都在引用 v1 而没有提及 v2。

  • 那么,v2 怎么了?
  • 新项目应该使用 v2 吗?

此外,从Products►Google Identity Platform►Identity Toolkit开始时,无法访问 v1 文档的另一个“变体”,位于此链接的那个提供与 v2(入门页面)非常相似的信息,可能是“网站身份工具包”的实际文档。

此外,当您将 v1 与几乎相同的 v2 文档进行比较时,您可能会注意到“GITkit”一词的使用已被“Identity Toolkit”取代:

v1:

联合登录和 Google 身份工具包简介

Google 身份工具包 (GITkit) 使依赖方能够使用互联网标准协议 OpenID 2.0 和 OAuth 来验证用户是否拥有其网站上的帐户

v2:

联合登录和 [Google]* 身份工具包简介

Google Identity Toolkit (Identity Toolkit) 使依赖方能够使用互联网标准协议 OpenID 2.0 和 OAuth 来验证用户是否拥有其网站上的帐户

  • 我已将 Google 放在方括号中,因为虽然标题包含该单词,但左侧菜单项却没有。

这种转变的原因是什么?这只是文档中的重构工作(也可能是库中的重构工作)还是底层技术发生了变化并包括这两个版本之间的不兼容性?

谷歌或 GITkit 开发人员是否在某处发表了声明,解释了路线图、版本间的变化、“身份工具包”的当前状态和 GITkit 的淘汰?

0 投票
1 回答
159 浏览

google-identity-toolkit - 如何本地化 Gitkit 登录按钮和登录页面

下面的示例代码仅适用于旧 V1 版本。有什么新的解决方案推荐吗?谢谢。

0 投票
1 回答
97 浏览

security - Android 应用程序和后端服务器之间的 GITkit 和 MITM 安全性

在与后端服务器的任何后续通信中,假设 idtoken 提供的安全性不比用自身的(可能加盐的)SHA2 哈希替换它更安全,这是否正确?

预定流程如下:

  1. Android 应用从 Google 获取 idtoken
  2. 应用程序将 idtoken 发送到自托管后端服务器,后端使用 gitkitclient.VerifyGitkitToken 对其进行验证
  3. 后端创建令牌的 SHA2 哈希以及到期日期和关联的用户 ID,并将其存储在查找表中以供将来参考
  4. Android 应用程序会创建与 idtoken 相同的 SHA2 哈希,并在以后与后端的任何通信中将其传递到标头中,而不是使用 idtoken 进行后续通信。

这会以任何方式降低系统的安全性吗?

如果具有 https 检查的透明代理(以及设备上安装的相应证书,即合法地在公司环境中)会嗅探流量,则获取 idtoken 或它的 SHA2 哈希将没有区别,该透明代理将能够在 idtoken 的整个生命周期内代表 Android 应用程序(可能以粗鲁的方式)采取行动,对吗?

我的问题是在每次与服务器的后续通信时调用 gitkitclient.VerifyGitkitToken 太昂贵了,一旦确定了 idtoken 的有效性,就没有必要了。

我也不希望将 idtoken 存储在服务器上以供将来参考,而是更喜欢它的哈希值。idtoken 的 SHA224 哈希是否足够,是否可以安全地假设它不会导致任何冲突?