谷歌应用引擎远程API + OAuth

5
我正在使用GAE远程API访问我的应用程序的数据存储。使用remote_api_stub.ConfigureRemoteApi进行对GAE的身份验证,其中包含一个返回用户名和密码的身份验证函数。
是否有一种使用访问令牌进行身份验证的方法,例如OAuth或OAuth 2.0?

ConfigureRemoteApi有一个rtok参数。它可能使用OAuth令牌吗?我还没有尝试过。 - jacob
rtok 仅用于 app_id 查找。 (来自 ConfigureRemoteApi 文档字符串)
rtok: 与 app_id 查找一起发送的验证令牌。如果为 None,则使用随机令牌。
并且在下面的代码中,你可以看到: if not app_id: app_id = GetRemoteAppIdFromServer(server, path, rtok)它似乎只有在检查给定的 app_id 是否存在于 App Engine 上时才有用,而不是用于远程 API shell 的实际身份验证。
- Bodhi
2个回答

3

对于已配置使用两步验证的Google账户,有一个解决方案。

目前,您可能会看到“BadAuthentication InvalidSecondFactor”错误提示,因为您无法从shell正确登录。

为了解决这个问题,您需要一个应用密码,该密码授权应用程序访问您的帐户资源。按照教程使用生成的密码和目标App Engine应用程序管理员的用户名作为Remote API的凭据。

更新:

此外,您可以查看来自AppEngine SDK的remote_api_stub.py文件。您将找到一系列名为_ConfigureRemoteApiWith*(注意前导下划线)的方法,例如:

  • _ConfigureRemoteApiWithKeyFile
  • _ConfigureRemoteApiWithComputeEngineCredential
  • _ConfigureRemoteApiWithOAuthCredentials

方法本身有很好的文档说明,请查看它们的docstrings。它们将让您使用比remote_api_stub.ConfigureRemoteApi()提供的更安全的方法进行身份验证。


谢谢,不过这并没有回答我的问题。我的问题是关于在完全不使用密码的情况下进行身份验证,并使用一些oauth令牌来代替。 - Tzach
@Tzach,你是否曾经成功地在GAE上使用OAuth 2.0?我对类似的事情很感兴趣。 - mba12
@mba12 我没有尝试过,因为我的系统不再直接连接到GAE了。你试过吗? - Tzach
@Tzach 我现在正在学习GAE oauth教程。预计下周初会有一个可用的示例。我会告诉你进展如何。 - mba12

0

你不能使用OAuth2来连接remote_api_stub/shell到你的应用程序。这个选项没有提供。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接