gpt4 book ai didi

python - oauth.get_current_user() 可以与 OAuth2 一起使用吗?

转载 作者:太空宇宙 更新时间:2023-11-03 13:19:18 25 4
gpt4 key购买 nike

我很难找到有关在我的 GAE 应用程序中使用 OAuth2 的明确答案。首先,这不是端点应用程序,只是一个普通的旧 python 应用程序。

如果在我的应用程序中使用 OAuth 端点,我可以获得 oauth.get_current_user() 方法返回经过身份验证的用户 (appid.appspot.com/_ah/OAuth*),但这是使用 OAuth1,它已被弃用——谷歌的开发文档说得很清楚。

所以我尝试使用 Google 的 OAuth2 端点来验证我的应用程序并且我已经获得了访问 token ,但是我的 GAE 应用程序中的 oauth.get_current_user() 调用总是抛出异常(无效的 OAuth sig ) 并且从不在预期时呈现 User 对象。我已经尝试在各种范围内授权我的应用程序(https://www.googleapis.com/auth/userinfo.email & https://www.googleapis.com/auth/appengine .admin),但这并不重要,因为当我使用 OAuth2 token 签署请求时,我的 GAE 应用程序从不接受有效请求并且 oauth.get_current_user() 总是抛出一个异常。

所以我的问题是,在使用 OAuth2 token 签署请求时,我是否应该能够在我的 GAE 应用程序中使用 oauth.get_current_user() 调用?如果是这样,我必须授权哪些范围才能访问 GAE 应用程序?

最佳答案

tl;博士;

在 appengine 代码中试试这个:

from google.appengine.api import oauth
oauth.get_current_user(SCOPE)

过去一周我一直在走同一条路,在模糊的谷歌文档中徘徊。

我的最终理解是 AppEngine 从未正式进入 OAuth2 领域。您会在整个 Google API 文档中看到这些“OAuth1 被弃用”消息,但实际上在 AppEngine 文档中却很安静。它谈论 OAuth,但没有谈论哪个版本。

这是我认为当前状态的情况(截至 2013 年 12 月 7 日):

还有一个文档讲的是OAuth 2.0 on appengine ,但它是关于从应用引擎服务器调用 Google API,而不是登录到它。

我在 [ 3 中尝试使用 OAuth2 方法访问 appengine 服务器],但是 oauth.get_current_user() 方法引发了异常。还尝试了各种范围,希望有一个适合应用引擎,结果失败了。

但是,

我发现了什么 from another SO answer ,是该方法的未记录使用:

oauth.get_current_user('https://www.googleapis.com/auth/userinfo.email')

将范围作为参数传递。如果消费者已经通过范围传递了访问 token ,这就奏效了。

结果它在 appengine code 中毕竟。只是不是 documented .

欢迎改进或纠正任何误解。

关于python - oauth.get_current_user() 可以与 OAuth2 一起使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19932850/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com