作者:手机用户2502862657 | 来源:互联网 | 2023-02-12 13:03
是否可以仅使用firebase auth,然后使用自己的数据库创建自己的api?
因此,我编写了一个使用Firebase令牌进行身份验证的REST API。
谢谢!
1> JoeWemyss..:
这取决于您将用于后端API的技术。有一个Firebase Admin SDK,针对Java,Python和Node开发人员,但是我认为您要寻找的功能仅在Node SDK中可用(尽管我认为有解决方法)。
这种工作方式是,用户在客户端登录后,他们可以请求令牌firebase.auth().currentUser.getIdToken()
,然后使用令牌可以将令牌传递给后端,然后可以对其进行验证,请参见以下示例,了解如何使用Node和Restify进行操作。 。
const server = restify.createServer({});
server.use(validateJwt);
function validateJwt(req, res, next) {
if(!req.headers.token){
//reject
}
admin.auth().verifyIdToken(req.headers.token).then(decodedToken=>{
console.log(`token for user ${decodedToken.sub} valid`);
admin.auth().getUser(decodedToken.sub).then(user=>{
console.log(`fetched user ${user.email}`);
next();
}).catch(err=>{
res.send(500, 'the user with the ID does not exist in firebase');
})
}).catch(err=>{
console.log(`token validation failed: ${err}`);
res.send(401, 'authentication failed')});
}