目前我正在创建一个基于nodejs的Firebase API。 我想使用firebase-admin在nodejs上处理所有Firebase相关内容(例如身份验证)。 但是,在不使用客户端Javascript Firebase SDK的情况下,在nodejs上验证用户的正确方法是什么? 在官方管理文档中,我没有找到名为signInWithEmailAndPassword(类似于客户端SDK)的函数。只有一个名为:“getUserByEmail”的函数,但该函数不检查用户是否输入了正确的密码。
这是我的表单:
<form class="sign-box" action="/login" method="post">
<div class="form-group">
<input id="username" name="username" type="text" class="form-control" placeholder="E-Mail"/>
</div>
<div class="form-group">
<input id="password" name="password" type="password" class="form-control" placeholder="Password"/>
</div>
<button type="submit" class="btn btn-rounded">Sign in</button>
</form>
当表单提交后,我将值传递到我的nodejs API中:
app.post('/login', urlencodedParser, function (req, res) {
// getting the values
response = {
username: req.body.username,
password: req.body.password
};
// authenticate the user here, but how ?
});
我的第一个想法是在客户端使用Firebase SDK通过signInWithEmailAndPassword 进行登录,然后获取uid。一旦我有了UID,我想将UID发送到nodejs并调用createCustomToken函数,返回生成的令牌(带有一些其他声明)给客户端。一旦我收到令牌,我将使用 signWithCustomToken函数(在客户端)对用户进行身份验证。这种方式正确吗?还是有更好的方法?
require('firebase')
库。该库具有您所需的客户端API,例如signInWithEmailAndPassword
等。 - bojeil