问题标签 [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.
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.
代码:
node.js - 使用 Gmail API 从 nodejs 服务器中的 G-Suite 发送电子邮件返回 400 错误请求
我想使用 Gmail API 从我在 nodejs 服务器中的 G-Suite 帐户发送一封电子邮件。我知道凭据没问题,因为我从 G-Suite 获取消息/标签没有问题。
这是我的代码:
我将send、compose和modify的范围添加到 Admin Google,不幸的是我收到了这个 400 bad request:
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 应用程序中?
python - 如何从 python 函数登录谷歌云存储?
我是谷歌云存储的新手,我尝试设置一个每天下载一次 blob 的功能。目前我正在使用我的 Jupyter Notebook,但最后,代码将在 Azure 函数中运行。我正在努力设置将我连接到存储桶的客户端。我有一个服务帐户凭据 JSON,它使我能够连接到谷歌。
在本地,我找到了解决方案:
问题是我没有将 JSON 存储在云中的路径,但我将其存储在密钥库中。我想出了以下解决方案:
我不完全确定我是否需要该scoped_credentials = ...
部件,但我只有存储桶的读取权限。(如果我跳过这部分错误保持不变)
当我寻求此解决方案时,我收到以下错误:
我不知道我做错了什么,因为我认为我已经明确设置了凭据。
最佳P
vue.js - 如何从我的 google vue 组件触发注销
如果用户在vue组件中使用google实现登录,如何从外部触发同一组件中的注销
python - Google Python OAuth:检测网页关闭或超时
我创建了一个 Python 程序,用于InstalledAppFlow.run_local_server
弹出 Web 浏览器以让用户进行身份验证。快乐路径工作正常(用户进行身份验证,我得到凭据。)
但是,如果用户在没有进行身份验证的情况下关闭网页或者只是将其关闭,则程序将永远挂起,等待来自 run_local_server 的响应。
那么,两个问题...
- 有没有办法检测用户在没有验证的情况下关闭了网页?
- 有没有办法为 run_local_server 设置超时,这样如果没有响应,它将在 x 秒内返回?
我做了很多谷歌搜索,发现 run_local_server 在本地运行一个简单的 WSGI HTTP 服务器,但找不到任何关于如何解决上述两个问题的信息。
这是代码片段。
python - Python - Google OAuth 从授权码生成令牌
我有一个 python 谷歌云函数,它接收 OAuth 授权代码作为参数。我想将此代码交换为可用于验证服务对象的令牌。
代码在外部生成并作为字符串参数传递给此函数。
我查看了google_auth_oauthlib.flow的文档。但它期望创建一个流对象来处理身份验证。就我而言,我只有代码作为结果。
如何将授权码作为字符串交换为令牌?
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
并且dontshrink
在proguard-rules.pro
. 有帮助,但会降低缩小的效果。keep class * { *; }
在proguard-rules.pro
. 有帮助,但会降低缩小的效果。
我无法相信像 minifyEnabled 这样的标准选项会破坏如此大规模的GoogleAuthorization
标准工具。com.google.api.client.*
不过,我可以相信我会犯一些愚蠢而明显的错误。目前,我的最后一根稻草是从“Web 服务器应用程序”转向“已安装”方式,但我并没有把希望寄托在这里——如果它是问题的主要来源,为什么它会在没有缩小的情况下工作......
为什么会发生所描述的行为?我究竟做错了什么?
javascript - 如何验证来自 Google 发布/订阅推送的 JWT 令牌(未找到信封的 pem)
语境
我正在关注谷歌关于启用实时开发者通知的 RTDNs指南。我已成功创建主题和订阅,并已收到发送到我创建的 API 的推送通知。我现在想对这些消息进行身份验证和验证。为此,我正在关注Authentication and Authorization 的本指南。他们的开发者文档在这里和这里都有一个看似有用的例子。
问题
遵循上述资源后,我收到以下错误:
相关代码
问题
由此,我假设我需要一些公钥。
- 我在哪里得到所说的公钥?
- 我在哪里放置所说的公钥,以便用它初始化谷歌客户端?
- 如何生成示例 JWT 来测试我的端点?
编辑
我可以在他们的代码中找到这个错误的来源:
但是,我已经验证了该kid
属性确实存在于解码对象中:
python - Google API:AttributeError:模块“时间”没有属性“时钟”
这是我的代码:
我在drive
错误消息中遇到错误:
AttributeError:模块“时间”没有属性“时钟”
我正在使用 Python 3.8。请帮忙。如果需要,我可以上传错误消息。
错误日志: