Slu*_*ger 3 python google-app-engine oauth
我很难找到关于在我的 GAE应用程序中使用OAuth2的明确答案.首先,这不是一个端点应用程序,只是一个普通的老python应用程序.
oauth.get_current_user()
如果在我的app(appid.appspot.com/_ah/OAuth*
)中使用OAuth端点,我可以获得在预期时返回经过身份验证的用户的方法,但这是使用OAuth1,这已被弃用 - Google的开发人员文档非常清楚.
所以我尝试使用Google的OAuth2端点来验证我的应用,并且我获得了访问令牌,但是oauth.get_current_user()
我的GAE应用中的调用总是抛出异常(无效的OAuth sig),并且在预期时永远不会呈现User对象.我已尝试使用各种范围(https://www.googleapis.com/auth/userinfo.email
&https://www.googleapis.com/auth/appengine.admin
)授权我的应用程序,但无关紧要,因为当我使用OAuth2令牌签署请求时,我的GAE应用程序从不接受请求为有效并oauth.get_current_user()
始终抛出异常.
所以我的问题是,我是否应该在使用oauth.get_current_user()
OAuth2令牌签署请求时使用我的GAE应用程序中的调用?如果是这样,我必须授权哪些范围访问GAE应用程序?
TL;博士;
在appengine代码中尝试这个:
from google.appengine.api import oauth
oauth.get_current_user(SCOPE)
Run Code Online (Sandbox Code Playgroud)
过去一周我一直走在同样的道路上,在模糊的谷歌文件中徘徊.
我最后的理解是,AppEngine从未正式进入OAuth2领域.您在整个Google API文档中看到了这些"OAuth1已被弃用"的消息,但在appengine文档中它实际上很安静.它谈论OAuth,但没有谈论哪个版本.
这是我认为当前状态的情况(截至2013-12-07):
*.appspot.com/_ah/
方法.不说哪个版本.可能只有1.0.还有另一个文档讨论关于appengine的OAuth 2.0,但它是关于从appengine服务器调用Google API而不是登录它.
我尝试在[ 3 ]中使用OAuth2方法访问appengine服务器,但oauth.get_current_user()
方法引发了异常.也尝试了各种范围,希望一个适合appengine,只有失败.
然而,
我从另一个SO答案中发现的是对该方法的无证使用:
oauth.get_current_user('https://www.googleapis.com/auth/userinfo.email')
Run Code Online (Sandbox Code Playgroud)
将范围作为参数传递.如果消费者已经使用范围传递了访问令牌,这就有效.
事实证明它毕竟是在appengine代码中.它没有记录.
欢迎对任何误解进行改进或更正.
归档时间: |
|
查看次数: |
858 次 |
最近记录: |