我正在为一家只有几名员工的公司构建一个移动应用程序。每个员工都有一个唯一的员工ID,可以用作其帐户标识符。我想知道如何在Firebase中使用他们的员工ID作为用户名/ ID作为预设密码来创建这些用户。
类似的东西:
[
{
"emp_id": 123, //Login username
"passwordHash": "LKWrHLwsFlbY4AylsPQ", //Password
"name": "John Doe"
},
{
"emp_id": 456,
"passwordHash": "ZQXyTXf8EXlAWX1f",
"name": "Jane Doe"
}
]
员工将拥有一个永不更改的登录ID和一个可以随意更改的密码。无法注册/注册。任何新员工将由管理员手动添加。
如何在Firebase中设置这种身份验证方法?他们似乎在强迫自己的身份验证系统(整洁而又全部,但不是我所需要的)
答案 0 :(得分:2)
Firebase不支持仅使用用户名和密码登录的内置支持。内置提供商提供的最接近的服务是使用伪造的电子邮件地址(例如123@company.com
)创建帐户。但这并不理想,因为在某种程度上假定您可以为电子邮件+密码帐户发送密码重置电子邮件。
由于没有内置的标识提供程序可以满足您的需要,因此您需要为此创建自定义身份验证提供程序。这就要求您可以在受信任的环境中运行代码以创建令牌,例如,您的开发计算机,您控制的服务器或Cloud Functions for Firebase。
有关在Cloud Functions上实现用户名和密码身份验证的自定义提供程序的示例,请查看this page in the function-samples
repo。