【问题标题】:Authenticate into Google App Engine在 Google App Engine 中进行身份验证
【发布时间】:2015-01-02 08:16:39
【问题描述】:

我正在尝试从浏览器外部访问我的 GAE 应用程序。 目前它是 Python 脚本,但我正在计划桌面 C++ 应用程序。

我正在闲暇Using OAuth 2.0 for Installed Applications

到目前为止,我设法访问了用户信息:

https://www.googleapis.com/oauth2/v1/userinfo?alt=json

但是,每次调用我的 GAE 时都会重定向到登录页面。

有没有办法通过脚本对 GAE 进行经过身份验证的调用?

请看my test code

我的目标:

在我的本地机器上使用 Python 脚本以经过身份验证的用户身份从我的 GAE 应用程序获取数据(json 端点、静态文件、html 等)。

【问题讨论】:

  • 您是否已将 GAE 页面设置为需要登录?如果是这样,您所看到的就是预期的。你没有说你的 GAE 应用程序是什么,但我假设它是一个 REST 端点。 REST 应该是无状态的,这样每个调用都需要携带自己的不记名令牌,然后您的 REST 端点可以对其进行验证。
  • 你是对的,它是在 app.yaml 中需要登录的 rest 端点。我以与 Google API 相同的方式包含不记名令牌。但是,当调用 Google 时,我只会看到一次登录信息。
  • 您需要从 yaml 中删除端点 URL 的登录要求。请记住,login=session=state 而 REST 是无状态的。
  • 我的意思是向端点验证用户,而不是让每个人都可以访问它。在浏览器中是可能的,所以它是可能的。
  • 我正在尝试使用 oauth(将 OAuth 2.o 用于已安装的应用程序),但是每次对 GAE 的调用最终都会重定向到登录,而对 Google API 的调用则很好。我应该使用一些特定的范围吗?

标签: python google-app-engine google-oauth


【解决方案1】:

我相信使用 ClientLogin(已弃用)https://developers.google.com/accounts/docs/AuthForInstalledApps 可以做到这一点。

但是,我发现只使用一个 API 秘密字符串(在标头中,通过 HTTPS)表示请求来自已批准的脚本要容易得多。

或者,您可以执行 oauth 登录流程(您想要的任何流程,使用您自己的 oauth 应用程序),但您不想在 app.yaml 中使用任何 login: 标签,只需在您的 Python 代码中完成即可。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-30
    • 2014-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-26
    • 2011-12-25
    相关资源
    最近更新 更多