我正在尝试使用身份验证从我的Android客户端访问我使用python中的云端点构建的appengine后端。
身份验证在api资源管理器中运行良好。
在android方面,我使用的是凭据/帐号选择器方法:https://developers.google.com/appengine/docs/python/endpoints/consume_android
但是当从Android客户端访问时,我在appengine日志中得到以下内容:
“Oauth框架用户与oauth令牌用户不匹配。”
在此之前就有这个警告:
“id_token验证失败:无法加载pycrypto库。无法验证id_token签名。有关”
的更多信息,请参阅http://www.pycrypto.org答案 0 :(得分: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()
方法是否在此情况下返回无然后检查身份验证部分中的任何错误。
这篇文章详细解释了ID tokens,这篇文章解释了limitations in knowing User_id when using ID tokens and the possible workarounds
编辑::根据Kai Stavginski的建议在下面找到最终解决方案
正如所建议的,当id_token验证中存在一些错误时,会看到oauth框架警告。因此,根据修改后的问题,日志有id_token verification failed: Unable to load pycrypto library
这需要将pycrypto库添加到app.yaml,然后将解决id_token失败,并且不会出现与oauth相关的警告。