问题标签 [google-auth-library-nodejs]

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 投票
0 回答
281 浏览

android - Android 应用程序的谷歌登录如何工作?

这是我对 Web 应用程序的身份验证流程的理解;

在此处输入图像描述

根据RFC 8252 ,建议将其用于移动应用程序

在此处输入图像描述

当我转到 时Google developers console > Create Credentials > OAuth Client id > Android [Application type],它会询问我:名称、SHA1 指纹和包名。

我假设不需要重定向 URI,当我在创建凭据时设置包名称时,当用户授权我的应用程序时,我的应用程序将获得控制权或更确切地说是身份验证代码。(如本答案所示)。如果我的理解有误,请纠正我。

此时,我需要将 auth_code 发送到服务器进行验证,这需要客户端 ID 和密码。但是在创建凭据时,我没有提供任何客户端机密。

那么这整件事应该如何运作呢?

更新

我试图从他们的教程中生成配置。它生成了 2 个凭据:一个用于 Web 应用程序,另一个用于 Android。它还生成了一个credentials.json包含 Web 客户端条目的条目。现在,如果我理解正确,此代码将进入 android 应用程序以获取身份验证代码。

但是,如果我的上述发现是正确的,那么它会引发更多问题来验证我的发现。

  1. 我什么时候会传递为 Android 生成的客户端 ID?
  2. 在这种情况下,重定向 URL 是什么?(我认为我们不需要设置它)
  3. 我是否必须使用服务器端的所有客户端 ID 来验证 auth_code?
0 投票
0 回答
419 浏览

google-api - 如何在 google-auth-library-nodejs 中使用 Oauth2Client 在 Gaxios 请求对象中发送二进制数据

我正在尝试使用 google-auth-library-nodejs 将照片上传到经过身份验证的帐户,主要遵循此处的示例。我已经成功地使用 OAuth2Client 对客户端进行了身份验证,并且首先使用图像发出发布请求,然后创建媒体项目。但是,我不断从 mediaItems:batchCreate POST 请求中收到此错误。

我怀疑这是因为 Oauth2Client.request 中的Gaxios对象参数将请求的数据编码为 base64,而照片 api 文档要求二进制数据。有没有办法覆盖 Gaxios 对象中的这种行为?我可以发出正常的发布请求,但我想保留 google-auth-library 的好处认证好处。这是我的代码。

谢谢!

0 投票
1 回答
146 浏览

google-auth-library-nodejs - google auth library node js:解包令牌的内容

一些谷歌服务正在向程序发送请求标头中的授权 JWT 令牌。使用 Google Auth 库 ( https://github.com/googleapis/google-auth-library-nodejs ),我如何解压缩包以检索令牌的字段?谢谢

0 投票
1 回答
761 浏览

node.js - 使用节点证书的 Google IAP 已过期错误?

我有一个节点服务器,它需要连接到受 IAP(身份感知代理)保护的 API 端点。谷歌的以下示例似乎可以预期该certificate has expired错误。我相信我只需要rejectUnauthorized: false随请求一起发送,但我不确定如何实现它。

更新

我能够强制它与添加一起工作,process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';但据我了解,与rejectUnauthorized: false. 有什么见解吗?

链接到 Google 示例:https ://github.com/googleapis/google-auth-library-nodejs/blob/502f43e651d7ccbd1cc19de513d5f5af5008ac03/samples/iap.js

0 投票
1 回答
240 浏览

javascript - 尝试在后端nodejs服务器上验证它时在js chrome扩展中生成令牌时出错

我正在尝试在 chrome 扩展中生成一个令牌,然后使用它来验证对后端服务器的请求。我已经成功地在前端生成了一个令牌,但是当我将它发送到后端并使用 nodejs 库进行验证时,google-auth-library但总是得到错误Error: Wrong number of segments in token: [TOKEN_HERE]

我试图找出如何在线修复它,但我发现没有任何效果。我的扩展程序的 ID 与控制台中的 ID 相同。

我在开发人员控制台中创建了一个 chrome 扩展应用程序并将其添加到我的清单中:

一旦我运行代码

它会生成一个令牌,我可以在扩展中验证该令牌:

这还在我的控制台中生成了一个新的 oAuth2 客户端,它是一个 Web 应用程序: https ://i.imgur.com/uH789P8.png

在后端 nodejs 服务器上,我尝试使用两个生成的 ID 来验证令牌。扩展应用程序没有客户端密码,但 web 应用程序有。我曾尝试将密码与网络服务器 ID 一起使用,但这也不起作用。

这是后端验证的代码:

我想使用此代码验证令牌,但无法这样做。每次我使用可通过xhr请求验证的令牌时,它只会给我错误Error: Wrong number of segments in token。我不知道从这里去哪里,因为文档有点稀缺。感谢所有帮助!

编辑:我还尝试使用Bearer它不起作用的前缀验证令牌。

编辑2:我已经找到了问题!...只是不是解决方案。当我弄清楚时会更新。只是为了让您知道它不起作用的原因是我尝试获取令牌的方式给了我访问令牌而不是 ID 令牌。我将尝试找出如何验证访问令牌等等。

0 投票
2 回答
1501 浏览

javascript - 电子邮件操作中的 generateEmailVerificationLink 和其他 Firebase 传递状态

因此,我正在与移动开发团队密切合作,以便在用户注册、重置密码等时生成正确的电子邮件。

使用我粘贴在下面的这段代码,在所有的白名单和动态链接配置​​之后,我们终于生成了链接。它适用于iOS和Android这两个应用程序。问题出在webapp上。如果用户尝试通过应用程序注册并收到此电子邮件但在桌面打开它,则 web 应用程序将显示 404 并且不会转到我设置的 url url: baseUrl(这是用户能够激活他的 url电子邮件)。

我在这里不明白什么?

0 投票
0 回答
973 浏览

google-cloud-functions - 如何使用 node.js 客户端对 Cloud Function 进行身份验证

我有一个在 GKE 中运行的 node.js 应用程序,它需要能够对云函数进行服务器到服务器调用,该函数的权限配置为仅允许在 GKE pod 上配置的服务帐户调用它。所以基本上,node.js 有一个环境变量GOOGLE_APPLICATION_CREDENTIALS指向安装在卷上的凭证密钥 json 文件。

同样对于本地开发,如果它只使用存储在 gcloud sdk 配置中的我的用户帐户凭据,那就太好了。

我已经弄清楚如何使用服务帐户凭据进行身份验证。下面是代码,假设GOOGLE_APPLICATION_CREDENTIALS环境变量包含凭证密钥 json 文件的路径:

这种方式略有不同:

但是我仍然不确定如何在本地开发中使用用户帐户凭据来执行此操作。最接近的解决方案是使用cURL

所以有一种方法,但我该如何在javascript中做到这一点?

0 投票
2 回答
824 浏览

google-cloud-platform - 将 private_key 用作环境变量时,它的正确格式是什么?

我正在尝试使用private_key一些 GCP 服务 nodejs 客户端库,例如@google-cloud/pubsub@google-cloud/trace-agent

private_key从这样的服务帐户凭据 json 文件中得到:

在此处输入图像描述

我正在尝试将其用作云功能的环境变量。

.env.yaml

在此处输入图像描述

并像这样使用它:

但出现错误:

错误:错误:0906D06C:PEM 例程:PEM_read_bio:没有起始行

我检查堆栈驱动程序日志,这是private_key我得到的环境变量:

在此处输入图像描述

我的猜测是格式private_key不正确。这可能是由换行符引起的\n。那么,这样使用时正确的格式是什么private_key

0 投票
1 回答
139 浏览

node.js - 服务器到服务器 OAuth

我想每天从服务器端自动创建谷歌电子表格。Google 电子表格需要 OAuth 才能创建、编辑、删除电子表格。要获得 OAuth 访问令牌,我们必须手动登录并在同意屏幕上允许权限。这在服务器端是不可能的。有没有办法获得 OAuth 令牌服务器端?我在服务器端使用 Node.js。

0 投票
1 回答
450 浏览

node.js - 错误:使用服务帐户创建 GCP 项目时用户未获得授权

我正在尝试使用 Google API 以编程方式创建 GCP 项目。这是示例代码:

运行此代码后,我收到以下错误:

UnhandledPromiseRejectionWarning:错误:用户未被授权。

谁能帮助我为什么会收到此错误?我该如何解决这个问题?

附言

  • Google 资源管理器 API 已启用。
  • 服务帐户具有 role=owner 权限。