1

我正在尝试从我的 android 客户端访问我的 appengine 后端,该后端使用 python 中的云端点构建 - 使用身份验证。

来自 api explorer 的身份验证工作正常。

在 android 端,我使用此处描述的凭据/帐户选择器方法:https ://developers.google.com/appengine/docs/python/endpoints/consume_android

但是从 android 客户端访问时,我在 appengine 日志中得到以下信息:

“Oauth 框架用户与 oauth 令牌用户不匹配。”

在此之前有这个警告:

“id_token 验证失败:无法加载 pycrypto 库。无法验证 id_token 签名。有关更多信息,请参见http://www.pycrypto.org

4

1 回答 1

4

当您从 android 客户端使用云端点访问 GAE 应用程序时,它将使用 ID 令牌。因此,如果您收到警告Oauth framework user didn't match oauth token user,那么您必须在 id_token 验证中看到一些失败并看到一些警告,例如id_token verification failed. Checking for oauth token.请检查您的endpoints.get_current_user()方法在这种情况下是否返回 None,然后检查您的身份验证部分是否有任何错误。

这篇文章详细解释了ID 令牌,这篇文章解释了在使用 ID 令牌时知道 User_id 的限制以及可能的解决方法

编辑: : 根据 Kai Stavginski 的建议在下面找到最终解决方案

如建议的那样,当 id_token 验证出现错误时,会看到 oauth 框架警告。因此,根据修改后的问题,日志中有id_token verification failed: Unable to load pycrypto libraryThis requires pycrypto library to be added to app.yaml 然后 id_token failure 将得到解决,并且不会出现与 oauth 相关的警告。

于 2013-06-30T08:01:55.897 回答