问题标签 [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 回答
129 浏览

android - GET_ACCOUNTS 权限和 Google API

我正在使用 Gmail API 从 Android 应用程序发送电子邮件。
阅读GET_ACCOUNTS许可让我认为不再需要它,但显然,我错了。

我个人使用 Android 8 并且在没有声明权限的情况下一切正常,但是,运行 Android 7 会引发 Google GMS Auth lib 的异常:(我知道,该异常看起来不相关,这是权限问题)

所以我想我仍然需要声明它并要求用户在 Android 7 上授予它,但是在其他哪些 SDK 版本中?
貌似安卓8不需要权限,但是安卓6以下呢?
我查看了所有 Google API 的文档,但没有找到任何相关的内容......

0 投票
2 回答
3251 浏览

google-api-nodejs-client - 如何使用 Google API getRequestHeaders() 获取 OAuth2 访问令牌?

我正在使用googleapisnpm 库授权使用 OAuth2 访问我的 Gmail 帐户以发送电子邮件。我正在使用以下代码(TypeScript)来做到这一点:

此代码有效,但我收到以下消息:

我在 Google、GitHub 上搜索了该googleapis模块、在 StackOverflow 上搜索,但我无法找到任何有关该getRequestHeaders方法构成要素的文档。我试过调用getRequestHeaders,但它似乎没有返回credentials带有访问令牌的对象。

是否有官方文档说明getRequestHeaders在这种情况下应如何使用?

0 投票
1 回答
368 浏览

oauth-2.0 - 如何在 Microsoft Word 插件中使用 Google 登录

在下面的链接中建议使用Google Auth Lib,但github提供的链接不引用任何 javascript 库:

据我所知,我不能使用它,Code FLow因为它需要重定向 URL。我应该怎么Access Token进去GoogleMicrosoft Word Add-In

0 投票
1 回答
547 浏览

php - 谷歌身份验证显示 HTTP 403 错误被禁止

当我在本地主机上运行脚本时工作正常。但在服务器上显示 403 错误: 在此处输入图像描述

在我的谷歌控制台中重定向网址 -
xyz.com/change/googlelogin

在我的浏览器中-使用谷歌身份验证登录后,它向我显示
-xyz.com/change/googlelogin?code=4/sgAnQ7T_O5l7bDPgaMQ4_s-c0Abz_wxsVPIt5bPQdaklIdF0QyoQicTXyW7CUQHh5ScUBZ4GYyyV8cZyiX-mu3s&scope=email%20profile%20https://www.googleapis.com/ profile%20https://www.googleapis.com/auth/userinfo.email 出现上述错误

0 投票
1 回答
1488 浏览

node.js - 如何通过 NodeJS 将 google-auth-library 与 Google Cloud Storage 一起使用?

我想在 NodeJS中使用Google Cloud Storage ,但使用google-auth-library 进行身份验证 具体来说:我想在 heroku 上托管它,所以我想将秘密保存在环境变量中,而不是文件中(因为我必须提交文件以部署到heroku)。基本上什么在 auth 库中建议: https ://github.com/googleapis/google-auth-library-nodejs#loading-credentials-from-environment-variables

但我似乎无法将生成的客户端传递给 Storage 构造函数?

0 投票
0 回答
1231 浏览

python - 将 Python 脚本从 oauth2client 升级到 google-auth

我想将以下代码从oauth2client升级到google-auth。是的,这段代码确实有效,是他们网站上 Google 演示的复制粘贴。

我能够升级大部分(我认为),但找不到tools.run_flow使用google-auth的等价物。下面是我的升级版,除了机制之外,它拥有一切(我认为)tools.run_flow。如何tools.run_flow使用google-auth完成?

当我使用google-auth方法运行上述代码时,我得到以下结果:

附加上下文,我正在尝试构建一个 Python 脚本来访问 Google 幻灯片以对幻灯片内容执行一些处理。我只是在阅读,而不是在写 Google 幻灯片。上面的代码是我尝试为我的 GSuite 帐户(我是我的组织的 GSuite 的管理员)处理访问 Google 幻灯片内容的身份验证和授权部分。使用旧oauth2client的第一个示例效果很好,但是由于不推荐使用oauth2client并且建议使用google-auth,因此我想使用最新的库以“正确”的方式进行操作。

更新

我用以下代码解决了部分问题:

我现在的挑战是让网络浏览器自动打开。我可以复制并粘贴链接并手动获取代码,一切正常。理想情况下,我希望像在旧库中那样自动打开 Web 浏览器并捕获令牌。

解决了

将前面代码示例中的部分代码更新为:

Web 浏览器会自动打开并捕获令牌值。一切都很好。

0 投票
1 回答
2421 浏览

active-directory - freeradius + ldap + google-authenticator

我想用密码 + google_otp 登录到我的 vpn 服务。freeradius 作为身份验证服务器,ldap 作为 backend_database。

我已经完成了以下工作:</p>

  1. 在 /etc/raddb/sites-enabled/default 中启用 pam 身份验证模块
  2. 在 /etc/raddb/users 添加一行“DEFAULT Auth-Type := PAM”
  3. 启用 ldap 模块并将 ldap 站点添加到 freeradis,我确认 raidus 使用 ldap 数据库工作正常。
  4. 覆盖 /etc/pam.d/radiusd 的内容

运行测试cmd:(testpa是我的密码,271082是otp)

半径日志:

登录 /var/log/secure:

我知道这是因为没有本地用户,用户信息在 ldap 中。

任何人都可以帮助我,告诉我如何配置可以解决这个问题,谢谢。

0 投票
0 回答
738 浏览

reactjs - 已发布电子应用程序上的 Google API:gapi.auth2.ExternallyVisibleError:无效的 cookiePolicy

我有一个使用 Google API 进行身份验证并获取日历事件列表的 React + Electron 应用程序。

API 脚本正在我的上加载并在head我的index.html上初始化,App.js如下所示:

它在我运行服务器的本地环境中完全可以正常工作,但是一旦我构建了我的 Electron 应用程序并“本地”运行该应用程序,我就会收到以下错误:gapi.auth2.ExternallyVisibleError: Invalid cookiePolicy

我对 API 和服务器没有深入的了解来解决这个问题,但通过研究,我发现 API 无法从“file://”协议工作,这就是 Electron 应用程序的情况。

想法?想法?

0 投票
6 回答
4500 浏览

android - Google Auth 迁移到 androidx:SignInHubActivity 未实现 Lifecycle

迁移到 AndroidX 后,我遇到了 Google Auth lib 的以下问题:

在 Android 9 API 28 上:

在 Android 5.0.2 API 22 上

我正在使用以下库版本:

一旦我开始有意图的活动,代码就会崩溃:

我在 settings.gradle 文件中有以下属性:

Google Auth 库不支持使用 AndroidX 库进行身份验证?

有没有办法从一个支持 lib 行为的 androidX lib 开始一个意图?  

我接受 java 和 kotlin 语言的答案。

更新 1: 27.12.2017

谷歌api客户端创建:

可能是因为enableAutoManage

更新 2:28.12.2018

我设法使用以下代码登录:

所以我认为凭据或其他配置文件没有问题。这样,用户将无法选择帐户。

我认为 Jetifier 以同样的方式失败。

使用 API 27 我得到了同样的错误。

0 投票
1 回答
1565 浏览

jwt - 谷歌登录:使用 google-auth Python 包时“找不到密钥 id xxxx 的证书”

我正在维护一个网站及其移动应用程序(iOS 和 Android)。对于移动应用程序中的 Google 登录,我在服务器端使用google-auth Python 包

从大约一个月前开始,我开始从服务器端收到与 Google 登录相关的错误报告。错误消息如下所示:

未找到密钥 ID 728f4016652079b9ed99861bb09bafc5a45baa86 的证书。

服务器端 Google 登录身份验证后端遵循此文档

该错误来自google.auth.jwt 模块,在根据 Google 公共证书列表验证 Google 颁发的 JWT 时。

深入研究 google-auth 代码,我可以看到该verify_oauth2_token()函数正在从 URL https://www.googleapis.com/oauth2/v1/certs获取 Google 公开证书。似乎有时,对于从某些 Android 手机发送的某些 Google ID 令牌,在该 URL 中找不到密钥 ID。

以下是一些可能有用的其他细节:

  • iOS应用似乎没有这种问题。从USER_AGENT标题中,我可以看到该错误仅发生在 Android 应用程序 ( USER_AGENT=okhttp/3.11.0) 中。它只发生在某些 Android 设备中,而不是全部。
  • 我想知道这是否只发生在中国的安卓手机上(例如,如果他们通过 VPN 连接)。所以我也检查了用户IP地址。但事实证明,其中一些用户来自欧洲。
  • 服务器错误日志中一次又一次地重复出现某些密钥 ID。例如,aa436c3f63b281ce0d976da0b51a34860ff960eb从 11 月初到现在(12 月底),密钥 id 被看到了几十次。
  • 我经常看到这个错误,每天几次(10~30次)。

我的网站在以下环境中运行:

  • 操作系统:Linux (CentOS 7) 64 位
  • Apache 2 与 mod_wsgi 4.5.24
  • Python 3.6.7 和 Django 2.1.2
  • google-auth 版本:尝试了 1.3.0 和 1.6.1

由于我无法用我的 iPhone 或我的 Android 手机(华为 P20,在法国购买)重现此问题,我完全被卡住了。

但是,我的一个朋友现在有这个问题,他从香港买了他的安卓手机。这让我想到,对于某些国家/地区,Google 登录是否有可能使用一些不同的证书,而不是https://www.googleapis.com/oauth2/v1/certs上的公共证书?

我不认为这是 google-auth 包中的错误。我想知道你们中是否有人听说过这个错误,并且可以给我一个关于它可能的原因的提示?

提前致谢!