问题标签 [google-auth-library]

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

node.js - 使用 Google Auth Library 对 Google Drive 进行身份验证

我正在使用节点 Google Auth Library 来获取授权客户端。console.log('Project ID', await auth.getProjectId())从打印正确结果的行我知道这一步是成功的。当我尝试使用此授权客户端对 Google Drive api 进行身份验证时出现错误:

Error: invalid_scope: Invalid OAuth scope or ID token audience provided.

代码:

0 投票
1 回答
244 浏览

node.js - 使用 Gmail API 从 nodejs 服务器中的 G-Suite 发送电子邮件返回 400 错误请求

我想使用 Gmail API 从我在 nodejs 服务器中的 G-Suite 帐户发送一封电子邮件。我知道凭据没问题,因为我从 G-Suite 获取消息/标签没有问题。

这是我的代码:

我将sendcomposemodify的范围添加到 Admin Google,不幸的是我收到了这个 400 bad request:

0 投票
1 回答
79 浏览

python - 我正在尝试将 Google Sign 集成到我的 python、flask Web 应用程序中,但出现以下错误

回溯(最后一次调用):文件“C:/Users/Amabel/PycharmProjects/SystemSecurity/AlienFurniture/main.py”,第 1178 行,在 app.run(debug=True) AttributeError: 'Blueprint' object has no attribute'跑'

我在做正确的方法吗?如何将 Google 登录选项集成到带有 mysql 数据库的 python 烧瓶 Web 应用程序中?

0 投票
3 回答
1149 浏览

python - 如何从 python 函数登录谷歌云存储?

我是谷歌云存储的新手,我尝试设置一个每天下载一次 blob 的功能。目前我正在使用我的 Jupyter Notebook,但最后,代码将在 Azure 函数中运行。我正在努力设置将我连接到存储桶的客户端。我有一个服务帐户凭据 JSON,它使我能够连接到谷歌。

在本地,我找到了解决方案:

问题是我没有将 JSON 存储在云中的路径,但我将其存储在密钥库中。我想出了以下解决方案:

我不完全确定我是否需要该scoped_credentials = ...部件,但我只有存储桶的读取权限。(如果我跳过这部分错误保持不变)

当我寻求此​​解决方案时,我收到以下错误:

我不知道我做错了什么,因为我认为我已经明确设置了凭据。

最佳P

0 投票
0 回答
96 浏览

vue.js - 如何从我的 google vue 组件触发注销

如果用户在vue组件中使用google实现登录,如何从外部触发同一组件中的注销

0 投票
1 回答
182 浏览

python - Google Python OAuth:检测网页关闭或超时

我创建了一个 Python 程序,用于InstalledAppFlow.run_local_server弹出 Web 浏览器以让用户进行身份验证。快乐路径工作正常(用户进行身份验证,我得到凭据。)

但是,如果用户在没有进行身份验证的情况下关闭网页或者只是将其关闭,则程序将永远挂起,等待来自 run_local_server 的响应。

那么,两个问题...

  1. 有没有办法检测用户在没有验证的情况下关闭了网页?
  2. 有没有办法为 run_local_server 设置超时,这样如果没有响应,它将在 x 秒内返回?

我做了很多谷歌搜索,发现 run_local_server 在本地运行一个简单的 WSGI HTTP 服务器,但找不到任何关于如何解决上述两个问题的信息。

这是代码片段。

0 投票
2 回答
1226 浏览

python - Python - Google OAuth 从授权码生成令牌

我有一个 python 谷歌云函数,它接收 OAuth 授权代码作为参数。我想将此代码交换为可用于验证服务对象的令牌。

代码在外部生成并作为字符串参数传递给此函数。

我查看了google_auth_oauthlib.flow的文档。但它期望创建一个流对象来处理身份验证。就我而言,我只有代码作为结果。

如何将授权码作为字符串交换为令牌?

0 投票
1 回答
204 浏览

java - Android 应用程序中的 minifyEnabled 中断了 GoogleApi 调用

TLDR - 当 minifyEnabled 为 true 时,Android 应用程序与 Google API 存在问题。

有一个 Android 应用程序使用 Google API 来创建活动和 Google 会议。我使用非常标准的工具来处理这些 API - GoogleAuthorizationCodeFlow, com.google.api.services.calendar.Calendar, com.google.api.services.calendar.model.Event. 我无缘无故地使用“Web 服务器应用程序”身份验证方式而不是“已安装的应用程序” ,但事实上我已经完成了第一个工作。在我的调试模式下一切正常,但是当我进入发布模式时,就会出现问题。

  • GoogleClientSecrets变得无法处理console.developers.google.com给我的secrets.json。相同的文件在调试模式下工作正常,但现在GoogleClientSecrets.getDetails返回 null。有趣的事实 -GoogleClientSecrets.toString/GoogleClientSecrets.toPrettyString显示文件中的数据,但似乎缺少配置文件的所有引号。它最终修复了(现在我直接使用 clientId/clientSecret 创建秘密,没有 json 文件),但为什么问题首先出现?
  • 修复后,flow.newAuthorizationUrl().setRedirectUri(redirectUrl).build()给我https://accounts.google.com/o/oauth2/auth而不是https://accounts.google.com/o/oauth2/auth?access_type=offline&approval_prompt=force&client_id=<myClientId>&redirect_uri=<myRedirect>&response_type=code&scope=https://www.googleapis.com/auth/calendar. 大多数“相对”部分都被跳过,尽管 redirectUrl 和 clientId 被正确读取和保存 - 但在 Url 中没有它们的踪迹。通过添加-keep class com.google.api.client.googleapis.auth.oauth2.*到我的proguard-rules.pro. 这看起来更像是一种解决方法,而不是真正的解决方案,但后来情况变得更糟。
  • 修复后,当我这样做时

有了一个完美的事件,无需缩小即可正常工作,然后我得到

这可以-keep class com.google.api.services.calendar.* { *; }在我的proguard-rules.pro

  • 修复后,插入事件的同样尝试给了我

经过一些测试,我注意到以上所有内容仅在 minifyEnabled 为 true 时才会出现。使用 minifyEnabled false,一切都像魅力一样。到目前为止,我找到了 3 个解决方案

  • minifyEnabled false. 我有点喜欢我的文件在发布时缩小了
  • dontobfuscate并且dontshrinkproguard-rules.pro. 有帮助,但会降低缩小的效果。
  • keep class * { *; }proguard-rules.pro. 有帮助,但会降低缩小的效果。

我无法相信像 minifyEnabled 这样的标准选项会破坏如此大规模的GoogleAuthorization标准工具。com.google.api.client.*不过,我可以相信我会犯一些愚蠢而明显的错误。目前,我的最后一根稻草是从“Web 服务器应用程序”转向“已安装”方式,但我并没有把希望寄托在这里——如果它是问题的主要来源,为什么它会在没有缩小的情况下工作......

为什么会发生所描述的行为?我究竟做错了什么?

0 投票
1 回答
640 浏览

javascript - 如何验证来自 Google 发布/订阅推送的 JWT 令牌(未找到信封的 pem)

语境

我正在关注谷歌关于启用实时开发者通知的 RTDNs指南。我已成功创建主题和订阅,并已收到发送到我创建的 API 的推送通知。我现在想对这些消息进行身份验证和验证。为此,我正在关注Authentication and Authorization 的本指南。他们的开发者文档在这里这里都有一个看似有用的例子。

问题

遵循上述资源后,我收到以下错误:

相关代码

问题

由此,我假设我需要一些公钥。

  1. 我在哪里得到所说的公钥?
  2. 我在哪里放置所说的公钥,以便用它初始化谷歌客户端?
  3. 如何生成示例 JWT 来测试我的端点?

编辑

我可以在他们的代码中找到这个错误的来源:

但是,我已经验证了该kid属性确实存在于解码对象中:

0 投票
1 回答
225 浏览

python - Google API:AttributeError:模块“时间”没有属性“时钟”

这是我的代码:

我在drive错误消息中遇到错误:

AttributeError:模块“时间”没有属性“时钟”

我正在使用 Python 3.8。请帮忙。如果需要,我可以上传错误消息。

错误日志: