使用云功能的Firebase自定义身份验证系统的凭证系统

时间:2019-05-25 09:53:49

标签: android firebase firebase-authentication google-cloud-firestore google-cloud-functions

场景:

我想创建一个使用用户名和密码进行身份验证的android应用。我决定为此使用firebase自定义身份验证。

从我的android应用程序中,我正在调用Firebase云函数,以使用提供的用户凭据对用户进行身份验证。

  

Firebase通过允许您使用安全的JSON Web令牌(JWT)对用户或设备进行身份验证,使您可以完全控制身份验证。您可以在服务器上生成这些令牌,然后将其传递回客户端设备,然后使用它们通过signInWithCustomToken()方法进行身份验证。

来源:https://firebase.google.com/docs/auth/admin/create-custom-tokens

我想利用Firebase Firestore存储用户名和密码,并使用它在Firebase云功能中创建用于Firebase自定义身份验证的自定义JWT。

问题:

  1. 我应该将用户凭据存储在firebase firestore中,如果是,那么安全的方法是什么?如果没有,我应该怎么做?

  2. 如果传递给该功能的凭据与firestore中的凭据匹配,如何在firebase云功能中创建JWT。

注意:

我没有凭证系统,也没有服务器。

1 个答案:

答案 0 :(得分:0)

如果您以前从未创建过身份验证系统,我强烈建议您为您的应用找到这种身份验证系统的现有实现。

那是说:如果您要构建自己的系统,则需要看一下此示例usename/auth provider in the functions-samples repo。它显示了如何接收数据,如何调用后端系统以及如何创建自定义令牌。

有关如何存储用户名/密码的某些信息,请参见Best way to store password in database。将这些信息存储在Firestore中是一种常见的方法,并且与将其存储在任何其他受适当保护的基于云的数据库中一样好。