我们可以仅将Firebase用于令牌管理吗

时间:2018-09-06 10:38:13

标签: firebase firebase-authentication

我们可以仅使用Firebase来处理令牌管理吗?并以传统方式进行身份验证和用户管理。

我想知道仅使用Firebase进行令牌管理的利弊。

当我想将用户保存在MYSQL数据库中并使用Firebase进行身份验证时,有什么建议?

您的所有意见/建议将不胜感激。

2 个答案:

答案 0 :(得分:1)

最好的方法是从Firebase获取用户ID,然后将其存储到您的MuSQL数据库中。

我之前已经做过,并且对我来说效果很好。

答案 1 :(得分:0)

Firebase通过自定义身份验证系统提供了这样的灵活性。

通过修改身份验证服务器,当用户成功登录时,将生成自定义签名的令牌。您的应用程序会收到此令牌,并使用它来通过Firebase进行身份验证。

优点:

  1. 您在服务器中拥有数据的副本,可以在此进行管理/操作。即使Google已关闭其操作,您仍然拥有用户数据,访问令牌等...

缺点:

  1. 您的服务器可能无法扩展,速度很慢,这会导致不良的用户体验 假设您正在使用Javascript,可以通过以下方式实现此目标:

  2. 将Firebase添加到您的JavaScript项目中。

  3. 获取项目的服务器密钥:

    a。。转到项目设置中的“服务帐户”页面。

    b。。单击“服务帐户”页面Firebase Admin SDK部分底部的“生成新私钥”。

    c。。新服务帐户的公钥/私钥对将自动保存在您的计算机上。将此文件复制到您的身份验证服务器。

  4. 使用Firebase进行身份验证

    a。。当用户登录您的应用时,请将其登录凭据(例如,用户名和密码)发送到您的身份验证服务器。您的服务器检查凭据,如果有效,则返回自定义令牌。

    b。。从身份验证服务器收到自定义令牌后,请将其传递给signInWithCustomToken以登录用户:

    firebase.auth().signInWithCustomToken(token).catch(function(error) {
     // Handle Errors here.
     var errorCode = error.code;
     var errorMessage = error.message;
     // ...
     });
    
  

用户首次登录后,将使用一个新的用户帐户   创建并链接到凭据,即用户名和   密码,电话号码或身份验证提供者信息-用户已签名   与。此新帐户存储为Firebase项目的一部分,   并可以用来识别项目中每个应用程序的用户,   不管用户如何登录。

有关实施的更多详细信息,可以搜索 Authenticate with Firebase in JavaScript Using a Custom Authentication System