对于我目前的项目,我希望同时使用Cloud Endpoints和Cloud Storage API。
当您对云端点进行身份验证时,来自Google的示例tic-tac-toe应用程序指出应该将access_token设置为id_token,如下所示(请参阅github repository):
var token = gapi.auth.getToken();
// Use id_token instead of bearer token
token.access_token = token.id_token;
然而,一旦access_token设置为id_token,就不能再使用其他google apis了。在我的例子中是Cloud Storage API。原因是访问令牌现在对它们无效。例如,云存储API返回无效凭据。
在access_token设置为id_token之前,access_token如下所示:ya29.AHES6ZTjklghkljghlkjfghkljsrdölizuklhlfghI_UTfghdfghCg
。它被我不想在这里发布的id_token所取代,因为它真的很长。
我能想到的两个解决方案是:
我对此问题的解决方案和可行的解决方法非常感兴趣。
如果您遇到此问题,请阅读以下答案和我的评论。一旦你完成了,你就会明白这个问题实际上更多的是这个问题:How do I test Cloud Endpoints with Oauth on devserver
我会在这里留下问题,以防有人在里面搜索条款。
答案 0 :(得分:1)
Python Tic Tac Toe示例似乎需要更新。在这种特殊情况下不再需要ID令牌。 (Java example正在使用Google+登录信息,因此要求略有不同。)
您可以省略对令牌的操作,它会自动适用于端点以及您呼叫的其他任何Google API。请参阅Python "Hello Endpoints" example了解它的外观(最值得注意的不是它)。