Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine 在Google App Engine上解码Firebase idToken_Google App Engine_Firebase Authentication_Google Cloud Endpoints - Fatal编程技术网

Google app engine 在Google App Engine上解码Firebase idToken

Google app engine 在Google App Engine上解码Firebase idToken,google-app-engine,firebase-authentication,google-cloud-endpoints,Google App Engine,Firebase Authentication,Google Cloud Endpoints,我的firebase用户正在向我的API服务器发送请求。我正在使用谷歌云端点中的安全规则验证它们。我提取他们的用户ID,而不使用谷歌应用程序引擎上的管理SDK 通常,Google建议在示例Firebase云函数代码中通过以下代码验证HTTPS请求的传入id令牌: 但是,在示例Google App Engine代码中,Google在没有admin SDK的情况下解码令牌: let authUser = { id: 'anonymous' }; const encodedInfo = req.get

我的firebase用户正在向我的API服务器发送请求。我正在使用谷歌云端点中的安全规则验证它们。我提取他们的用户ID,而不使用谷歌应用程序引擎上的管理SDK

通常,Google建议在示例Firebase云函数代码中通过以下代码验证HTTPS请求的传入id令牌:

但是,在示例Google App Engine代码中,Google在没有admin SDK的情况下解码令牌:

let authUser = { id: 'anonymous' };
const encodedInfo = req.get('X-Endpoint-API-UserInfo');
if (encodedInfo) {
  authUser = JSON.parse(Buffer.from(encodedInfo, 'base64'));
}

我正在使用谷歌云端点来保护我在谷歌应用程序引擎上托管的API。我在云端点上设置了安全性,只允许firebase用户访问路由,但是,我只希望用户访问他们自己的数据,因此我需要解码他们的id令牌来检索他们的用户id。我想知道云端点是否在这里处理身份验证。我需要让AdminSDK验证令牌吗?或者Google示例中的简单解码足够安全,因为云端点已经负责验证idToken了?

Admin SDK正在做端点代理在验证令牌时所做的事情。代理只是传递已验证的令牌。只要Endpoints代理仍在应用程序前面,您就可以解码X-Endpoint-API-UserInfo令牌

let authUser = { id: 'anonymous' };
const encodedInfo = req.get('X-Endpoint-API-UserInfo');
if (encodedInfo) {
  authUser = JSON.parse(Buffer.from(encodedInfo, 'base64'));
}