问题标签 [oauth2-playground]

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 投票
2 回答
5151 浏览

javascript - Google OAuth2 - 令牌的交换访问代码 - 不起作用

我目前正在实施服务器端 OAuth2 流程以授权我的应用程序。

JS 应用程序将代表注册的 CMS 帐户向最终用户(拥有与 CMS 帐户合作的频道)显示 YouTube 分析数据。因此,授权阶段需要对用户完全隐藏。我试图授权一次,然后在需要时使用“永久”授权代码来检索访问令牌。

我能够成功授权并检索访问代码。当我尝试将访问代码交换为令牌时,问题就开始了。

实现此目的的 HTTP POST 请求需要如下所示...

我正在使用这段代码来实现这一点:

我可以成功获得对此请求的 200 OK 响应,但是没有返回访问令牌,并且 myPOSTRequest.responseText 返回一个空字符串。

我玩过 Google 的 OAuth Playground - 并且可以使用我自己的凭据成功获取令牌。

我在这里错过了什么吗?

0 投票
1 回答
643 浏览

wso2 - 即使用户拒绝授予授权,使用 OpenID Connect 的 WSO2 身份服务器也会返回授权代码

当我运行 playground2 openid connect 示例时,即使我拒绝授权,我仍然可以看到照片。我让用户登录并成功验证,但拒绝授权。从 OpenID Connect 规范中,应该返回一个错误代码,但我仍然得到授权代码。我正在运行 WSO2 身份服务器 4.6。

为什么它仍在发送授权令牌?

0 投票
0 回答
702 浏览

oauth - Youtube 分析 API:缺少必需的参数:grant_type

我正在使用谷歌提供的 OAuth 游乐场。尽管我的调用中有 grant_type 参数,但它无法识别它。为了继续调用 API,我需要刷新我的令牌;但是,即使在操场上,通话也无法正常工作。

0 投票
2 回答
1654 浏览

google-oauth - 有没有办法*仅*通过 Google 的 OAuth2 实现获取用户的电子邮件地址?

我的页面上有一个“使用 Google+ 登录”按钮。当人们点击它时,我希望他们唯一授权的是“查看您的电子邮件地址”。

希望“知道你在 Google 上的身份”或“查看有关您帐户的基本信息”。我想要他们的电子邮件地址。

我在 OAuth 2.0 Playground ( https://developers.google.com/oauthplayground/ ) 上玩,看到了这个:


范围:email

要求:

  1. 在 Google 上了解您的身份
  2. 查看您的电子邮件地址

范围:(https://www.googleapis.com/auth/userinfo.email 这个已弃用)

要求:

  1. 在 Google 上了解您的身份
  2. 查看您的电子邮件地址
0 投票
2 回答
647 浏览

http - 为什么 google oauth2 playground 无法返回数据?

我正在使用谷歌游乐场学习 oauth2,我正在尝试这个请求:

并收到此回复:

在授权选项卡上,我请求访问所有 yoututbe v3 api 范围,并根据请求授予访问权限。我假设我正在形成错误的查询参数?我是 oauth 的新手,以及它是如何工作的。

0 投票
0 回答
512 浏览

oauth - 使用 Google OAuth Playground 的 OAuth 2.0 访问令牌请求

我正在尝试使用 Google 的 OAuth Playground 工具将 OAuth 2.0 授权代码交换为访问令牌。因此,我进入第 2 步,它显示了将发送到 MY_SERVER 的 HTTP POST 请求(出于安全原因,我混淆了确切的 IP 地址)。

对我来说,这看起来是正确的,如果我使用 POST 工具来处理这个请求,它确实会到达我的服务器。从 Playground 启动它,它没有到达我的 Web 服务器(日志中没有任何内容)。

有人知道可能出了什么问题吗?

这个帖子

发布 /tb/html/token/ HTTP/1.1

主机:MY_SERVER.COM

内容长度:170

内容类型:应用程序/x-www-form-urlencoded

用户代理:google-oauth-playground

code=Splxl0576dGF6567gFG&redirect_uri=https%3A%2F%2Fdevelopers.google.com%2Foauthplayground&client_id=jarne&scope=&client_secret=some_secret&grant_type=authorization_code

结果是

HTTP/1.1 400 错误请求

内容长度:105

内容类型:文本/纯文本

连接服务器时出错:无法获取 URL:http: //MY_SERVER.COM/tb/html/token/

0 投票
0 回答
875 浏览

php - 即使来自 Playground,Google OAuth 2.0 也会返回 400“错误请求”

我正在尝试在我的 CodeIgniter 应用程序中使用PHP League OAuth2 客户端库进行身份验证。但是,我总是收到错误 400“错误请求”。因此,我尝试通过Google 的 OAuth 2.0 Playground使用我自己的客户端 ID 和客户端密码,但它给出了同样的错误。有趣的是,当我尝试使用我的 Google 帐户登录时, Jasper 报告社区遇到了同样的错误。回到操场,我尝试了 Google Plus 登录以及旧端点。谷歌有中断吗?

失败的网址是

(为安全起见,变量 state、redirect_uri 等已被隐藏)。这是我的控制器代码,基于 Phil Sturgeon 的示例:

0 投票
1 回答
1089 浏览

google-plus - Google+访问令牌权限不足

使用 OAuth 代码,我可以为 google+ API 生成访问令牌。

在oauthpalyground中使用此访问令牌,我得到 JSON 响应。

当我将此 URL 粘贴到浏览器中时,会收到一条错误消息。

错误信息

谁能向我解释为什么?

0 投票
1 回答
921 浏览

oauth2-playground - Oauth2 Playground 交换令牌的授权码:400 错误

我一直在遵循基本的 OAuth 2.0教程来创建 OAuth 2.0 服务器。整个部分运行良好,但是当我尝试在此页面之后的 Google OAuth2 游乐场中使用它时,我遇到了一些错误。

我已经按照上面链接中的所有步骤进行操作,但我将http://localhost/wordpress/authorize.php?state=xyz其用作我的授权端点,否则我会收到一条错误消息,指出需要状态并且我还不想编辑任何代码。

现在,授权 API 似乎一切正常。我被定向到我的本地主机站点,当我授权请求时,我将返回到 OAuth2 Playground。当我继续下一步并尝试将返回的授权代码交换为令牌时,我收到 400 错误。

整个请求/响应如下:

这可能是我最终犯的一个简单错误,但我似乎无法弄清楚。我不认为代码真的有问题,因为当我在教程页面上进行测试时,一切正常。我也没有编辑示例使用的库中的任何文件。如果需要,我可以编辑此帖子以包含代码以符合链接可能变为非活动状态的规则。

我注意到有关请求的一件事就是这一点&scope=&client_secret=newpass&grant_type=authorization_code。看起来没有范围参数集,我在想这可能会弄乱结果。

如果有人对 OAuth 或 OAuth2 Playground 有任何经验并且可以帮助我找出问题出在哪里,我将非常感激。另外,我为这个冗长的问题道歉,但我想尽可能多地提供信息。

0 投票
2 回答
7219 浏览

java - Google Drive API - OAuth2.0:如何自动化认证过程?疑问和问题

我正在尝试将 Google API 集成到一个项目(论文项目)中,但我有一些疑问和问题。所以,这里是场景:

我用 Java 编写了一个后端应用程序,它只从命令行运行,并且完全没有与用户交互。它的目标是允许传感器和执行器之间的通信和交互。一切都很好。现在我想整合一些东西,以便让传感器以一定的周期性和由于一些检测到的阈值来备份数据。所以我想,为什么不尝试使用 Google Drive。第一个非常有用的链接是:

https://developers.google.com/drive/web/quickstart/quickstart-java

https://developers.google.com/accounts/docs/OAuth2InstalledApp

快速入门示例就像一个魅力。然而,它需要相当多的设置:在开发者控制台中创建一个项目(因此是一个帐户),启用 Drive API,然后创建一个客户端 ID 和一个客户端密码。完成这些步骤后,您可以硬编码客户端 ID 和密码以形成 google drive 的请求 URL。然后请您在浏览器中输入 url,如果没有,请登录,接受并最后将授权代码复制并粘贴到您的控制台中以获取访问令牌。哇,相当安全的过程。但是,嘿,我完全同意这一点,尤其是在我们拥有需要用户身份验证和授权的网络应用程序、智能手机应用程序或网络服务的情况下,以便让应用程序通过访问其他帐户来完成其工作. 但就我而言,我只是希望传感器能够备份我的谷歌驱动器上的数据。

这些事实引出了我的第一个问题:为了使用 Google API(在本例中为 Drive),我是否必须创建一个项目?还是有其他方法?如果我没记错的话,没有其他方法可以创建客户端 ID 和密码,而无需在开发者控制台中创建项目。这让我很困惑。为什么我应该创建一个项目来使用一些库?

因此,让我们假设前面的约束是合理的,然后继续讨论真正的问题:如何自动化身份验证过程?鉴于我的传感器(只是一个 Java 模块)想要备份数据的场景,不可能完成所有这些步骤。关于 OAuth 2.0 的谷歌页面对我们可以嵌入身份验证过程的不同场景有很好的解释,包括“输入能力有限的设备”。不幸的是,这比其他的更复杂,并且要求“用户切换到具有更丰富输入功能的设备或计算机,启动浏览器,导航到有限输入设备上指定的 URL,登录并输入代码。 " (哈哈)

所以,我没有放弃,最后我写了这篇关于 OAuth Playground 的帖子:如何在没有用户干预的情况下授权应用程序(Web 或已安装)?(规范?)。对我来说,它确实看起来像是一个解决方案,尤其是当它说:

NB2。如果您想要一个访问您自己(并且只有您自己)Drive 帐户的 Web 应用程序,这种技术很有效,而无需编写只能运行一次的授权代码。只需跳过第 1 步,在第 5 步中将“my.drive.app”替换为您自己的电子邮件地址。

但是,如果我没记错的话,我认为 OAuth Playground 只是用于帮助测试和调试使用 Google API 的项目,不是吗?此外,Google 驱动类如GoogleAuthorizationCodeFlowGoogleCredential(在 Java 快速入门示例中使用)总是需要 Client ID、Client Secret 等,这使我归零(创建一个项目并执行整个图形过程)。

总之:有没有一种方法可以避免“图形”身份验证交互并将其转换为仅使用 Drive 的 API 而无需用户干预的自动化过程?非常感谢,我将不胜感激任何提示,提示,答案,指针:-)