问题标签 [google-oauth]

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 投票
12 回答
149844 浏览

web-services - 如何验证 Google 身份验证 API 访问令牌?

如何验证 Google 身份验证访问令牌?

我需要以某种方式查询 Google 并询问:[给定访问令牌] 对 [example@example.com] Google 帐户有效吗?

精简版

很明显,通过Google Authentication Api :: OAuth Authentication for Web Applications提供的访问令牌如何用于从一系列 Google 服务请求数据。目前尚不清楚如何检查给定的访问令牌是否对给定的 Google 帐户有效。我想知道怎么做。

长版

我正在开发一个使用基于令牌的身份验证的 API。在提供有效的用户名+密码或提供来自N个可验证服务中的任何一个的第三方令牌时,将返回一个令牌。

其中一项第三方服务将是 Google,它允许用户使用他们的 Google 帐户对我的服务进行身份验证。稍后将扩展到包括 Yahoo 帐户、受信任的 OpenID 提供商等。

基于 Google 的访问的示意图示例:

替代文字

“API”实体在我的完全控制之下。“公共界面”实体是任何基于 Web 或桌面的应用程序。一些公共接口在我的控制之下,其他的不会,还有一些我可能永远都不知道。

因此,我不能信任在第 3 步中提供给 API 的令牌。这将与相应的 Google 帐户电子邮件地址一起提供。

我需要以某种方式查询 Google 并询问:此访问令牌对 example@example.com 有效吗?

在这种情况下,example@example.com 是 Google 帐户的唯一标识符 - 某人用于登录其 Google 帐户的电子邮件地址。这不能被假定为 Gmail 地址 - 有人可以拥有 Google 帐户而没有 Gmail 帐户。

Google 文档清楚地说明了如何使用访问令牌从许多 Google 服务中检索数据。似乎没有任何说明如何首先检查给定的访问令牌是否有效。

更新 令牌对 N 个 Google 服务有效。我无法针对 Google 服务尝试使用令牌来验证它,因为我不知道给定用户实际使用的所有 Google 服务的哪个子集。

此外,我永远不会使用 Google 身份验证访问令牌来访问任何 Google 服务,只是作为一种验证假定的 Google 用户实际上是他们所说的人的手段。如果有另一种方法可以做到这一点,我很乐意尝试。

0 投票
8 回答
101537 浏览

authentication - 如何在我的网站上实现“使用 google 登录”?

在我的网站上,我想允许用户使用谷歌帐户登录。我打算使用 openid,但我想允许使用 google 登录,因为它有更多好处。过去我注意到一些能够使用 google (gmail) 帐户和 IIRC 登录的网站,尽管它们不支持 openID(但我可能是错的)。

如何实现“使用谷歌登录”?

0 投票
3 回答
9532 浏览

openid - 将 OpenID 委托给 Google(不是 Google Apps)

是否可以使用我的个人网站/博客登录使用openid的网站,并委托给我的 Google 帐户?


好的,我在 SO 上搜索了这个问题,但没有好的答案。花了一些时间后,我想出了如何做到这一点。我将自己回答这个问题,以分享它。

0 投票
4 回答
2659 浏览

java - 在java中获取谷歌的电子邮件/用户名?

是否可以检索我已使用 OAuth 成功验证的谷歌帐户的用户名?

我已经检索了用户访问令牌,但我想知道他们是否是一个 API 调用,我可以使用https://google.api/getUserName并将访问令牌传递给该调用并成功检索用户电子邮件/用户名?

在普通的 OAuth Web 服务中,您只需要秘密和 id 访问令牌来调用 Web 服务,但在 google 中,您也需要用户名。

有任何想法吗?

0 投票
1 回答
205 浏览

authentication - 授权 Google ToDo List (AuthToken, secid)

我正在尝试使用此网址访问 Google 的待办事项提要:

https://www.google.com/calendar/tdl?secid=<SECID>&tdl={%22action_list%22%3A[{%22action_type%22%3A%22get_all%22%2C%22action_id%22%3A%221%22%2C%22list_id%22%3A%2215052708471047222911%3A0%3A0%22%2C%22get_deleted%22%3Afalse}]%2C%22client_version%22%3A-1}

如果我在浏览器中使用正确的 secid 打开它,它会正确显示我想要的。

现在,问题是:我如何以编程方式(特别是在 java 程序中)获得 secid?我可以访问 authToken(来自 CalendarService),但我不知道如何使用它来授权我访问上面的 URL。

我尝试使用网址http://google.com/accounts/ServiceLogin,但没有找到任何示例。

请问有什么帮助吗?

0 投票
10 回答
115749 浏览

security - Google 身份验证器可作为公共服务使用吗?

是否有用于在自运行(例如 LAMP 堆栈)网络应用程序上使用Google Authenticator (两因素身份验证)的公共 API?

0 投票
3 回答
15353 浏览

oauth-2.0 - Google OAuth 2 授权 - 将代码交换为令牌

我正在尝试实施 Google OAuth 2 以访问 Google API。我遵循指南,使用服务器端方案。

我在获取代码方面没有问题,服务器重定向到 localhost(这是目前重定向 URI 中唯一允许的服务器)。为了实现这一点,我去https://accounts.google.com/o/oauth2/auth?client_id=whatever.apps.googleusercontent.com&redirect_uri=http://localhost/&scope=https://www.google.com/m8/feeds/&response_type=code页面。

然后,我尝试使用curl(如指南)来测试 Google 的服务器是否使用访问令牌进行响应。但是,它似乎很难失败。我能得到的唯一回应是{"error":"invalid_client"}。我确定我提供了 Google 希望我提供的所有内容 - 代码、客户端 ID、客户端密码、重定向 URI (localhost) 和grant_type=authorization_code.

整个curl命令行是:

我错过了什么吗?如何用代码交换访问令牌?

0 投票
4 回答
110446 浏览

oauth - 为什么访问令牌会过期?

我刚刚开始使用 Google API 和 OAuth2。当客户授权我的应用程序时,我会获得一个“刷新令牌”和一个短暂的“访问令牌”。现在每次访问令牌过期时,我都可以将我的刷新令牌发布到 Google,他们会给我一个新的访问令牌。

我的问题是访问令牌过期的目的是什么?为什么不能只有一个持久的访问令牌而不是刷新令牌?

另外,刷新令牌是否过期?

有关 Google OAuth2 工作流程的更多信息,请参阅使用 OAuth 2.0 访问 Google API

0 投票
3 回答
19684 浏览

php - Google Calendar API v3 - 使用硬编码凭据进行身份验证

我正在编写一个 PHP 应用程序,它应该允许用户将某些事件添加到私人 Google 日历中。日历归我所有,我需要一种方法让 PHP 使用固定凭据与日历 API 进行通信(每个人都可以使用网站上的表单添加事件,但日历本身不公开可见)。

根据我的阅读,这可以在 v1 API 中使用 ClientLogin。但是,在 v3 API 中,可用的选项是 OAuth2.0 或 API 密钥。使用 API 密钥似乎不起作用,因为它只能用于不需要授权的请求,而且 OAuth 似乎也不正确,因为用户不应该访问自己的日历,但我的应用程序使用。

我考虑过以编程方式获取 OAuth 令牌,但这迟早会中断,因为 OAuth 对话框可以使用验证码。

这似乎是一个标准用例——一个允许用户以某些预定义方式与单个日历交互的 Web 应用程序——但我找不到任何关于如何在 v3 API 中实现它的文档。谁能帮我?

0 投票
16 回答
151431 浏览

google-api - 我在哪里可以获得 Google 开发者密钥

我正在研究 Google API,例如聊天、联系人等...我被developer_keygdata 文档中提到的那样卡住了。

您可以在https://code.google.com/apis/console获得此信息:

我已经:

在哪里可以找到开发者密钥?

我发现了这样的东西

但我知道这仅适用于 youtube。