如何正确实施用户身份验证和授权(带有NodeJS后端的FirebaseAuth)

时间:2019-04-24 15:43:03

标签: firebase authentication oauth-2.0 firebase-authentication jwt

我正在使用Firebase身份验证创建一个应用程序,但对于身份验证和授权仍然不熟悉。我已经做的是在前端实施Firebase身份验证,当用户成功注册后,它将向后端请求并验证其idToken firebase管理员。验证后,用户数据将与验证uid时返回的idToken一起存储在数据库中。

所有人都在工作,但是我对身份验证的最佳做法尚无明确的想法,我走的路正确吗?根据我的阅读,经过身份验证的客户端还应该在标头中传递令牌。

我应该将uid返回给客户端并在标题中使用它吗?如果是这样,后端是否应该使用它来检查每个客户端请求中数据库中是否存在匹配的令牌?

我真的对登录流程标准迷失了,非常感谢任何答案。

1 个答案:

答案 0 :(得分:0)

好吧,所以首先要了解的是Firebase是在客户端模式下运行的,这意味着您实际上不需要,并且应仔细考虑是否需要在Firebase操作服务器端进行操作。原则上,您可以在网络浏览器上的javascript上执行所有操作。或Android应用。或iOS应用。

如果您确实决定将某些功能移到服务器端,那么下一个最佳解决方案就是也将它们作为firebase中的托管云功能来进行。参见:

Callable cloud functions

如果由于某种原因需要部署和托管自己的代码,则可以按原样继续进行操作,在auth客户端进行身份验证,传递令牌,使用node admin解码令牌,并在适用时手动检查用户权限。