Firebase认证 + 自有API

7

是否可以只使用 Firebase Auth,然后创建自己的 API 并使用自己的数据库?

因此,我编写了一个 REST API,该 API 使用 Firebase 令牌进行身份验证。

谢谢!

2个回答

10
这取决于您将用于后端 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')});
    }

0

我相信你应该能够通过使用Firebase来授权用户,然后仅允许已认证用户安全地访问链接,从而实现此目标。如果这是你的意思,那么这个链接可以指向数据库。我猜你可能已经在这里开始了,但这就是起点 了解Firebase实时数据库规则


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接