Firebase,如何在node.js RESTapi后端中使用身份验证服务

时间:2018-09-01 03:16:30

标签: node.js firebase firebase-authentication

基地。 我是一个全栈Java脚本开发人员。

我有一个项目,前端是使用vue.js开发的。

后端正在使用node.js表达框架进行开发。我的后端也是RESTapi。

自从我的前端UI设计完成以来,我创建了一个基于火的项目并将其托管。托管前端部分非常简单。

我的后端还没有身份验证部分。我想在此项目中尝试基于Fire的身份验证服务。

我进行身份验证的正常方式是这样的。

  1. 将详细信息传递到后端以创建用户帐户。
  2. 后端创建一个用户帐户。
  3. 然后,当用户尝试记录凭据时,将其传递到后端并从后端释放令牌
  4. 该令牌在用户的浏览器中存储了临时内存,并随他传递给后端的每个请求都附有该令牌。
  5. 后端验证令牌并授予对资源的访问权限。

那是我所知道的正常流程。

当我使用fire-base进行项目的auth部分时,我无法理解这种正常的流程如何变化。

如何使用Firebase满足我的认证要求?

任何帮助!

非常感谢。

1 个答案:

答案 0 :(得分:1)

有两种情况。

首先,您从后端省略了用户创建部分,并使用Firebase身份验证在前端创建了用户帐户。该文档提供了让您入门的一切:https://firebase.google.com/docs/auth/web/start例如使用电子邮件和密码身份验证时:

firebase.auth().createUserWithEmailAndPassword(email, password).catch(function(error) {
  // Handle Errors here.
  var errorCode = error.code;
  var errorMessage = error.message;
  // ...
});

之后登录:

firebase.auth().signInWithEmailAndPassword(email, password).catch(function(error) {
  // Handle Errors here.
  var errorCode = error.code;
  var errorMessage = error.message;
  // ...
});

记住:

  

Firebase用户具有一组固定的基本属性-唯一ID,   主要电子邮件地址,名称和照片网址-存储在项目的   用户数据库,可由用户(iOS,Android,Web)更新。   您不能将其他属性直接添加到Firebase User对象。   相反,您可以将其他属性存储在Firebase中   实时数据库。

来自https://firebase.google.com/docs/auth/users

第二,您可以通过使用nodejs中的firebase-admin创建用户帐户来通过后端路由用户创建。登录请求将直接从前端转到Firebase(而不是后端)。因此,后端仅用于用户创建/管理。