问题标签 [oauth2client]

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 回答
544 浏览

python - 支持设置 oauth response_type 的 Python 库

我正在使用的服务器不支持将代码作为响应类型。我尝试使用flask-oauth,但它不支持设置响应类型。我想知道是否可以配置 flask-oauth 将其更改为令牌。我已经尝试通过设置来做到这一点:

但我得到了错误

如果没有,是否有人知道支持 oauth2 并设置响应类型的 python 库。

0 投票
1 回答
956 浏览

ios - 如何在 NXOAuth2 中使用保存的令牌?

我正在尝试使用NXOauth2 pod 在我的 iOS 应用程序上处理 OAuth2 来实施解决方案。

我能够通过已安装的应用程序流程来获取 OAuth2 属性,包括-accessToken并且refreshToken该帐户已正确保存到我的帐户中NXOAuth2AccountStore(通过检查验证[[NXOAuth2AccountStore sharedStore] accounts])。

现在我已经保存了令牌,我想在随后的应用程序打开时使用它们,而不是再次向用户请求访问权限。我在这里这样做:

以下调用(用于获取一些用户详细信息)在用户完成批准流程后立即起作用,但在应用程序关闭并重新打开时不起作用。

我应该如何使用保存的 accessToken / refreshToken 来:

  1. 使用查询数据requestOAuth2ProtectedDetails
  2. accessToken如果需要,使用refreshToken我已保存的获取更新?

这是我得到的错误:

第一次通过,这有效:

我注意到以下几点:

但在失败的情况下,会发生这种情况:

0 投票
3 回答
4708 浏览

python - 如何在没有 gflags 的情况下获取 Google Analytics 凭据 - 使用 run_flow() 代替?

这可能需要一秒钟来解释,所以请多多包涵:

我正在从事一个需要我提取谷歌分析数据的工作项目。我最初是按照这个链接做的,所以在安装了 API 客户端pip install --upgrade google-api-python-client并设置了类似的东西之后client_secrets.json,它希望安装 gflags 以执行该run()语句。(即credentials = run(FLOW, storage)

现在,我收到了安装 gflags 或更好使用run_flow()的错误消息(确切的错误消息是这样的):

NotImplementedError:必须安装 gflags 库才能使用 tools.run()。请安装 gflags 或最好切换到使用 tools.run_flow()。

我最初使用 gflags(几个月前),但它与我们的框架(金字塔)不兼容,所以我们删除了它,直到我们找出问题所在。而最好从 gflags 切换到的原因run_flow()是因为 gflags 已被弃用,所以我不想像以前那样使用它。我现在要做的是切换到使用run_flow()

这个问题是run_flow()需要一个命令行参数发送给它,这不是一个命令行应用程序。我发现了一些有用的文档,但我一直坚持为该run_flow()函数构建标志。

在显示代码之前,还要解释一件事。

run_flow()接受三个参数(此处的文档)。它像一样需要流和存储run(),但它也需要一个标志对象。gflags 库构建了一个在执行方法ArgumentParser中使用的标志对象。oauth2client

其他一些有助于构建argumentParser对象的链接:

第二个链接对于查看它的执行方式非常有帮助,所以现在当我尝试做类似的事情时,sys.argv拉入我正在运行的虚拟环境的位置,pserve也拉入我的.ini文件(它存储我的机器的凭据到运行虚拟环境)。但这会引发错误,因为它期待别的东西,这就是我被卡住的地方。

  • 我不知道我需要构建什么标志对象才能发送run_flow()
  • 我不知道我需要传递哪些 argv 参数才能让语句flags = parser.parse_args(argv[1:])检索正确的信息(我不知道正确的信息应该是什么)

代码:

我调用一个主函数传递sys.argv调用initialize_service

我知道这行不通,因为我的应用程序不是命令行应用程序,而是一个完整的集成服务,但我认为值得一试。关于如何正确构建标志对象的任何想法?

0 投票
1 回答
55 浏览

javascript - 为什么用于 PHP 的 Google API 需要客户端密码,而用于 Javascript 的不需要?

当我第一次在 php 环境中尝试 google api 时,我感到很困惑,它要求我使用通过 api 控制台获得的“客户端密钥”密钥。在 Javascript api 示例中不需要这样的密钥,我知道如果它在那里,代码将不再是秘密的。

谷歌仍然需要 php 代码中的密钥有什么原因吗?JS 和 PHP api 之间有什么不同吗,有什么东西只能在 PHP 中完成吗?

0 投票
1 回答
995 浏览

c# - 转让 Google 云端硬盘文档的所有权

我们用 C# 开发应用程序,该应用程序需要在未经原始所有者许可的情况下将与窗帘域相关的所有 Google Drive 文档的所有权转移给单个特定用户。我们正在使用 Google Apps 企业帐户的试用版。

原则上,我们需要这样做:http ://screencast.com/t/effVWLxL0Mr4但在 C# 代码中。

根据文档,它在 OAuth2 中实现为超级管理员功能。https://support.google.com/a/answer/1247799?hl=en (1)。但是文档已被弃用,而且我们没有找到任何 API 调用来做到这一点。

使用项目创建者的帐户,似乎他无法访问所有文件,也无法查看未与他共享的文件。

在管理 API 客户端访问的 Google 管理控制台中,我们为他添加了访问权限,以在未经许可的情况下访问文件。链接:screencast.com/t/zU9cc6Psyb。我们根据该文档链接添加了路由访问路由: trovepromo-tf.trove-stg.com/0m1-sds/support.google.com/a/answer/162106?hl=en并再次尝试。它没有成功...

此外,我们发现我们需要使用服务帐户来访问域中所有用户的所有数据,因此我们在创建的项目中生成服务帐户链接的 API 密钥: screencast.com/t/rNKuz6zchwV并在应用程序使用以下代码:

但是当我们尝试获取文件夹列表时,我们得到错误:“ access_denied”,描述:"Requested client not authorized.", Uri:""

请帮助我们通过服务帐户将一位用户的所有权转让给另一位用户!

2014 年 8 月 13 日更新:

亲爱的,我似乎对用户非个性化有问题。
1)当我使用api代表用户连接时。在身份验证期间,它会重定向到浏览器并请求许可。在那之后一切都很好,我可以使用文件夹进行操作,除了一件事:我不能将所有权转让给他 2)当我使用没有非个性化的服务帐户时,身份验证如下所示:

然后我可以访问共享到服务帐户的所有文件,但(再次)我无法转移权限。

3)然后我尝试通过将 sypeadministrator 电子邮件帐户添加到用户 User = myaddress@mydomain.com 来非个人化服务帐户

然后我有错误:“access_denied”,描述:“请求的客户端未授权。”,Uri:“”

如何正确非个性化服务帐户?

2014 年 8 月 13 日更新

我们发现用于身份验证的基本 api 在这里:https ://developers.google.com/accounts/docs/OAuth2ServiceAccount#creatingjwt

通常,我之前展示的只是协议的 .net 实现。

我们如何才能在 .net 代码中对用户进行非个性化。我们没有找到任何有效的 .net 实现。

0 投票
1 回答
2425 浏览

google-oauth - oauth2client Credentials refresh_token 变为 null

背景

  1. 我使用google-api-python-client django_sample获得了 Google API 的 access_token 。
  2. 为了离线访问,我添加了FLOW.params['access_type'] = 'offline'.
  3. 存储credentials_json = credentials.to_json()。它包含一个refresh_token.
  4. 恢复了凭据Credentials.new_from_json(credentials_json)
  5. 使用此凭据获得访问权限credentials.authorize(http)
  6. 工作完美=)

问题

  1. 我每5分钟做一次同样的事情。
  2. 在每次迭代中,我都存储了凭据并打印了它。
  3. 1 小时 45 分钟后,“refresh_token”变为空。
  4. 此时代码停止工作=(

我的问题

  1. Credentials类会自动刷新它的令牌吗?
  2. 如果没有,我应该在什么时候打电话credentials.refresh(http)

谢谢!

0 投票
1 回答
403 浏览

ios - 如何从 NXOAuth2Request 响应中获取数据

我正在编写我的第一个 iOS 应用程序。它包括通过 OAuth2Client 的 API 调用。

问题是在调用 AdvAPI getUser 函数时。通过 NXOAuth2Request 发出 GET 请求,该请求处理 responseHandler 中的响应数据,并将变量结果设置为 NSDictionary。但是,在 XOAuth2Request 函数之外无法访问结果。如何获取结果并从 getUser 返回?

谢谢!

0 投票
2 回答
4587 浏览

asp.net-mvc-5 - 如何在 MVC 5 Web 应用程序和 Web API 2 应用程序之间共享访问令牌

在这种情况下,我让用户登录(MVC 5)Web 应用程序,然后该应用程序充当代理以登录(Web API 2)API(使用基于 SSL 的基本)并返回承载/访问令牌。我正在使用 Thinktecture.IdentityModel.Client.OAuth2Client 处理登录并获取访问令牌,一切正常。

发生了一些其他事情,但现在我希望 Web 应用程序能够解码访问令牌以访问 API 上设置的声明(特别是登录 API 后返回的用户 ID)。

我正在使用经过大量演示的UseOAuthAuthorizationServer扩展UseOAuthBearerAuthentication方法,其令牌端点几乎是开箱即用的,但可以自定义OAuthAuthorizationServerOptions.Provider访问我自己的存储库。

我在两个应用程序上都有相同的 MachineKey,但我不清楚如何解码令牌,尽管我知道我可能不得不使用该SecureDataFormat.Unprotect方法。

我在 Web 应用程序中最接近的尝试是:

使用 Startup.DataProtectionProvider 设置如下:

我的后备计划是提供一种 API 方法,该方法在登录后返回我感兴趣的信息,但看起来似乎太过分了,因为它构成了令牌中声明的一部分(据我所知)。

我试图围绕 JWT(我查看过 Thinktecture、Microsoft 源代码和其他各种论坛)展开思考,但不确定这是否会有所帮助(尽管以纯文本形式提供的声明对我们很有用)。我还没有找到一个允许使用基本身份验证登录并返回包含访问令牌的自定义 JWT 的示例。

无论如何,我希望那是足够的信息和任何帮助将不胜感激......干杯

0 投票
2 回答
2537 浏览

oauth-2.0 - run_flow() 的哪个标志将模拟现在已弃用的 run()

我正在尝试验证我的凭据以访问 GMail API。以前我使用run()OAuth2 中的方法和代码执行此操作,credentials = tools.run(flow, STORAGE, http=http)但现在这是一个已弃用的方法。我现在正在使用该run_flow()方法来验证我的凭据。

注释行是使用而run_flow()不是run().

注释掉的代码给了我错误:run.py: error: unrecognized arguments: AdminTests, AdminTests 不是我给 Python 的参数。

当我更改解析为的参数时,flags = parser.parse_args(['--noauth_local_webserver'])我没有收到任何错误,但没有任何反应。

我应该使用哪个来尽可能接近flag地模拟它,我应该如何解析它?run()

编辑:当使用该run()方法验证我的凭据时,访问的 URL 是:( http://localhost:8080/?code=4/myuniqueID在示例中缺少我的唯一 ID)

0 投票
1 回答
233 浏览

django - 在 App Engine 项目上实施 OAUTH2

我尝试将 OAUTH2 功能添加到我现有的 App Engine 应用程序中,但遇到了一些问题,我感谢任何建议。

以下是我的步骤: 1. 在 Google Api Console 中创建客户端 ID,并创建 OAUTH 流;2.用户访问该login页面后,将被重定向到谷歌登录页面;3.一旦他们同意条款,用户将被重定向到我的应用程序的登录页面

我的问题是:

  1. 用户登录并重定向到登录页面后,如果他刷新页面,则会出现以下错误,我猜与flow.step2_exchange(cred). 有没有办法来解决这个问题?

    INFO 2014-08-21 16:39:56,437 client.py:1304] 无法检索访问令牌:{

    “错误”:“invalid_grant”,

    "error_description" : "无效代码。"

    }

  2. 另外,由于我在 App Engine 上运行 Django 项目,检查当前用户信息的最佳方法是什么,因为我想在页面的右上角发布他们的名字。有什么好的例子吗?

谢谢!