在 Google App Engine NodeJS 服务器上验证用户请求的 Firebase 身份验证令牌?



所以我找到了这篇关于如何将Firebase身份验证与Google App Engine集成的文档,但它是为Python编写的,而且似乎很旧,因为我发现代码中存在一些不一致之处。我没有找到相应的NodeJS教程。

据我所知,过程的顺序应该如下:

第1步

  • 用户通过客户端代码(firebaseJS SDK(登录,我使用user.getIdToken()获得其JWTuserIdToken

第2步

  • 使用以下标头获取我的GAE服务器URL:
headers: {
'Authorization': 'Bearer ' + userIdToken
}

然后教程指出我应该使用Google Auth库来验证JWTuserIdToken

在客户端可以访问服务器数据之前,服务器必须验证令牌是否由Firebase签名。您可以使用Google Authentication Library for Python验证此令牌。使用身份验证库的verify_firebase_token功能验证承载令牌并提取声明:

因此,对于NodeJS服务器,我应该使用以下库,对吗?

谷歌认证库

或者,我可以使用firebase-admin来验证userIdToken吗,如以下文档所示?

https://firebase.google.com/docs/auth/admin/verify-id-tokens

我想firebase-admin似乎是处理这个案件的方法。但是,如果我选择该路径,我是否仍然应该使用'Authorization': 'Bearer '标头传递令牌?或者有更好的处理方法吗?

您可以通过任何方式将ID令牌传递到后端。正如您在文档中看到的那样,使用授权标头是惯例和标准的,但不是必需的。代码示例应该清楚地表明,您真正需要的是传递该令牌,以便使用Firebase Admin SDK进行验证。

最新更新