相关疑难解决方法(0)

OAuth2和Google API:访问令牌到期时间?

我们有一个独立的Java应用程序(请参阅"安装应用程序":https://developers.google.com/accounts/docs/OAuth2)的定期运行,并使用谷歌API(从客户数据库/ LDAP更新一些信息/ ...) .

要访问Google API,我们会在配置文件中存储用户名和密码,这是一种安全风险,客户不喜欢这样做.因此,我们希望使用OAuth2长期访问令牌.

Google OAuth2访问令牌的默认到期时间是什么时候?

由于我们在应用程序中只有访问令牌,因此当访问令牌到期时,应用程序本身无法刷新它...

我个人认为在这种情况下OAuth2的实现不会带来任何重大好处,但让我们关注主要问题 - 默认的到期时间.

security google-api oauth-2.0 google-api-java-client google-oauth

56
推荐指数
2
解决办法
11万
查看次数

使用oAuth和youtube进行身份验证时,总是会遇到错误:第二次尝试时出现invalid_grant,为什么?

截至昨天,我的应用程序能够通过oAuth 2.0与google(youtube)进行身份验证,第一次没问题,但第二次(重新身份验证,相同的应用程序+同一用户),当我为accessToken交换requestToken时,我得到了一个错误:

error : invalid_grant
Run Code Online (Sandbox Code Playgroud)

我正在使用:

grant_type = authorization_code
Run Code Online (Sandbox Code Playgroud)

他们建议的.过去两天前发生的事情是重新验证,网页会说"您之前已使用此应用程序进行过身份验证,是否要再次授予其访问权限?".改变了什么或者我做错了什么?

youtube google-api gdata

10
推荐指数
1
解决办法
1万
查看次数

Google App Engine/Drive SDK:捕获大量HTTP截止日期异常

我们的应用程序部署在Google App Engine,Python运行时(2.7)上,并且正在使用Drive API.HTTPException由于超过截止日期,在不同的端点(驱动器,OAuth等)上捕获的内容越来越多

我们已经实现了5次尝试的指数退避机制.我们的应用程序越来越多地达到了这个限制(今天早上,例如我们有很多这些例外).

这个问题可能是什么原因?是否可以增加超时延迟?

谢谢你的帮助.

这是一个完整的堆栈跟踪(OAuth2 API):

2013-06-07 21:11:10,851 ERROR An error occurred : Deadline exceeded while waiting for HTTP response from URL: https://accounts.google.com/o/oauth2/token
Traceback (most recent call last):
  File "/python27_runtime/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 545, in dispatch
    return method(*args, **kwargs)
  File "/base/data/home/apps/s~unishared-gae/production.367909734400765242/main.py", line 733, in get
    creds = self.GetCodeCredentials() or self.GetSessionCredentials()
  File "/base/data/home/apps/s~unishared-gae/production.367909734400765242/main.py", line 301, in GetCodeCredentials
    creds = oauth_flow.step2_exchange(code)
  File "lib/oauth2client/util.py", line 128, in positional_wrapper
    return wrapped(*args, **kwargs)
  File "lib/oauth2client/client.py", line 1283, in step2_exchange
    headers=headers)
  File "lib/httplib2/__init__.py", …
Run Code Online (Sandbox Code Playgroud)

python google-app-engine google-api google-drive-api

5
推荐指数
1
解决办法
858
查看次数

如何在GAE/Python上进行'access_type = offline'/仅服务器OAuth2操作?

这篇文章是如何在GAE cron工作中执行OAuth要求操作的后续内容,我意识到我错误地使用了@oauth_required装饰器OAuth2DecoratorFromClientSecrets.

正如OAuth 2.0解释的演示文稿所述,Oauth 2.0解决了以下问题:

  • 建立服务 ......
  • ...由用户访问...
  • ... 并从第三方访问用户的数据.

这就是@oauth_required摘要,它做得很好(目前我的应用程序"有效":如果我触发刷新页面,我会被要求授权访问我的YouTube数据到我的应用程序,其余部分如下).但那不是我想要的!我的应用程序做了一些更简单的事情,即每天使用我的凭据创建一个youtube播放列表,无需任何用户输入.因此,为了与上述3层联想进行比较,我希望:

  • 一项服务
  • ...由用户访问
  • ... 但仅访问"服务器拥有的"YouTube播放列表数据.我不想访问用户的YouTube数据,我只想修改播放列表I(即我/服务器持久保存的用户ID).

但我仍然需要帮助才能做到这一点; 这是我目前的状态:

  1. 经过几次搜索后,我了解到我想要做的就是称为离线访问(强调我的,这几乎就是我的用例):
    "在某些情况下,当用户不在时,您的应用程序可能需要访问Google API.这方面的例子包括备份服务和应用程序,这些应用程序在周一早上8点正好发布博客帖子.这种访问方式称为脱机,Web服务器应用程序可以请求用户进行脱机访问.正常和默认的访问方式称为在线. " ...
    →所以我应该继续做我现在正在做的事情,继续请求访问我的YouTube帐户,但是使用type_access=offline标志来获取令牌,并持续/使用它来进行后续请求.

  2. 脱机访问使用刷新令牌部分使总感觉,但停留在一般的HTTP水平.作为一个新手,我不知道如何将这些原则集成到我的Python代码中,我没有找到任何示例Python代码....
    →任何人都可以帮我一个Python示例说明如何以及在何处使用这面旗帜?

  3. ...特别是在学习之后oauth2client.appengine.OAuth2Decorator.oauth_required,我仍然不确定我是否可以将它弯曲到我的情况,或者我是否应该做自己的事情.
    →你怎么看?

谢谢你的时间; 如果需要我也会在irc://irc.freenode.net/#appengine上闲逛ronj.

python google-app-engine google-api oauth-2.0 google-api-python-client

4
推荐指数
1
解决办法
4014
查看次数