问题标签 [oauth2]

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 投票
1 回答
3120 浏览

python - 使用带有用户名和密码的 OAuth2

作为测试版的一部分,我已经获得了对某个服务的 REST API 访问权限。有人告诉我授权是通过 OAuth2 进行的。

我得到以下信息:

  1. ID
  2. 秘密
  3. 地点

我还在 Ruby 中获得了一个代码示例:

我试图用oauth2包在python中实现这个相同的片段,但没有成功:

第二个响应包含以下内容:

我还尝试创建一个oauth2.Client没有令牌的对象,并检查第一个响应是否为access_token,但没有任何结果。

在这里进行身份验证的正确方法是什么?

0 投票
1 回答
230 浏览

c# - Windows 服务器上的 Youtube API v3 OAuth2 握手错误“连接失败”

我们希望结合 ASP.NET 4.5/C# 使用 Youtube v3 API 通过控制台应用程序将视频上​​传到特定的 youtube 频道。编译是在 Windows 7 专业开发机器上的 Visual Studio 2015 中完成的。

因此,我们在 Google Developer Console 中创建了 OAuth2 凭据,并使用以下代码进行 OAuth2 授权握手

到目前为止一切正常。如果之前没有授权,则会打开一个浏览器窗口(access_type=offline&response_type=code),我们可以在其中登录我们的 Youtube 帐户,选择一个频道,授予必要的访问权限,然后返回浏览器页面localhost:portnumber/authorize?code= XYZ写着“收到验证码。您可以关闭此窗口”,我们的控制台应用程序继续工作。这是我们开发机器上的工作流程。

但是,当我们将应用程序复制到 Windows Server 2012 时,会发生错误。浏览器窗口也会打开,我们可以登录并授予访问权限,但最终浏览器页面localhost:portnumber/authorize?code=XYZ无法加载浏览器特定的“连接失败”错误页面。

似乎没有进程附加到(随机?)端口号来读取接收到的代码信息、检索令牌并将其写入 %AppData%/Google.Apis.Auth。防火墙不会阻止任何东西。

我们的第一个猜测是名称解析问题。默认情况下,localhost 在 Windows 服务器上被解析为 ::1。不幸的是,当我们将 IPv4 分辨率强制为 127.0.0.1 时,它仍然不起作用

感谢您的每一个建议。

0 投票
2 回答
2002 浏览

php - Yii2 和 OAuth2 插件 Filsh/yii2-oauth2-server:发送 POST 数据时未授权


编辑:已解决

显然,这个插件在缺少请求标头时遇到了一些问题。解决方案是添加

到 .htaccess 文件以使 Authorizaion 变量可用,因为此问题报告说:


我目前正在使用 Yii2 并使用此 OAuth2 插件(Filsh/yii2-oauth2-server) 进行登录并使用来自移动 HTML5 应用程序的令牌。

我已经配置了所有内容,它正在检索令牌,但是当我尝试通过 POST 发送令牌时,它会引发错误。

我首先调用send()以检索令牌。

然后,当我执行此操作时,调用createuser().

它返回

未经授权:您使用无效的凭据请求

当我改为 GET 时,它工作正常。

这是我的控制器,我已经在使用:

['class' => HttpBearerAuth::className()], ['class' => QueryParamAuth::className(), 'tokenParam' => 'accessToken'],

作为认证方法。

这是我的配置对象

这是 OauthUsers 类

我也改变createuser了,但仍然收到 401。我不确定它是否通过findIdentityByAccessToken(access_token 与 oauth 用户位于不同的表中,这就是我首先查询它的原因)。

有什么想法吗?

0 投票
0 回答
62 浏览

java - 如何将 Mobile Native 应用程序(作为客户端)与 OAuth2 集成

所有,请原谅我对 Mobile Native 应用程序的开发不熟悉。我在授权类型中实现了我自己的 OAuth2 服务器Authorization Code。如何在Mobile Native AppIOS 或 Android 的任何客户端库中使用它?谢谢。

0 投票
1 回答
880 浏览

javascript - 关闭 Google OAuth2 的弹出窗口

我在弹出窗口中打开了用于 Gmail 的 oauth2,newWindow = window.open(...)然后当用户完成填写并点击“允许”时,它会重定向到我的服务器,在那里检索和存储令牌。最后,服务器返回“错误”或“成功”,因此弹出窗口中只会包含它。现在在 Angular 方面,我正在运行它。

这有时有效,有时会失败。我还将此代码用于其他 Oauth 提供程序,例如 Dropbox。有时它可以工作,有时它不能。知道为什么吗?

0 投票
2 回答
2794 浏览

python - 从 POST 请求中检索访问令牌并在 GET 请求中使用

我正在使用 requests 库发出 POST 请求以获取访问令牌。我的请求工作正常,但是,我不确定如何提取它然后在 GET 请求中使用它。

回报:

0 投票
0 回答
952 浏览

security - oAuth2 中间人攻击保护?

oAuth2 如何防止 MITM 攻击.. 我们如何从访问令牌中验证请求消息是否被操纵?发件人设备 ID 和 IP 是 oAuth2 访问令牌生成的一部分吗?

0 投票
2 回答
422 浏览

ruby-on-rails - 从 Office 365 返回的 OAuth2 令牌不包含 preffered_username 声明

我按照本教程进行了操作,已经到了我正在解码返回的令牌并提取电子邮件地址(应存储在preferred_username属性中)的地步,即以下代码:

问题是返回的对象不包含此属性,我返回的内容类似于以下内容:

快速浏览一下规范表明我从 Office 365 中获取了正确的对象,因为首选用户名被提及为潜在的声明,但它不在我返回的对象中。

有可能我没有使用正确的参数调用get_token函数,但是该库的文档非常稀疏,所以我无法确定。

我在 Github 上提出了一个问题。

这是 Office 365 端的错误、教程错误还是我自己做错了什么?

0 投票
5 回答
2733 浏览

oauth2 - oauth2中的具体算法

我需要使用 Oauth2 实现 SSO 系统。我了解 oauth2 中的步骤,但我不知道生成授权码或 access_token 的具体算法是什么,可能是哈希或其他东西。我在互联网上找不到

0 投票
0 回答
565 浏览

java - 如何在多租户环境中将 pac4j 用于 OAUTH2?

我想在 Java 应用程序中使用pac4j来创建 Tomcat 过滤器或 Tomcat 阀。过滤器或阀门必须支持使用标准 OAUTH2 授权代码流的 OpenID Connect。更好的是在j2e-pac4j之上构建来执行此操作,但我不能在 j2e-pac4j 中使用 OAUTH2 过滤器。我的过滤器或阀门需要通过添加 HTTP 标头来修改请求对象。过滤器/阀门后面的网络应用程序需要 HTTP 标头,它是第三方的,所以我无法更改它。

我将使用 Open ID Connect 以便获取 JWT,但除了使用 JWT 及其内容以及可能是 Open ID Connect 的 userinfo 端点之外,我只是在做一个标准的 OAUTH2 流程。复杂之处在于:我将重定向到授权的服务器支持多个租户。这意味着我重定向到的 URL 将在 URL 中包含租户名称。这意味着,而不是像 URL

(请注意,?response_type=code&scope=openid&client_id=myclientname&state=nonce&redirect_uri=...为清楚起见,请省略。)我将被要求重定向到以下 URL 之一:

您如何使用 pac4j 或更好的 j2e-pac4j 来做到这一点?我被告知 pac4j 将不支持这一点,每个客户端都可能使用不同的重定向 URL 进行授权。