Firebase Auth +拥有Api

时间:2017-02-09 21:25:18

标签: rest authentication firebase firebase-authentication

是否可以仅使用firebase auth然后使用自己的数据库创建自己的api?

所以我写了一个REST API,它使用firebase令牌进行身份验证。

谢谢!

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:0)

我相信您应该能够这样做,方法是使用Firebase授权用户,然后允许对仅为经过身份验证的用户安全存储的链接进行读取访问。如果这是你的意思,那么这可以链接到数据库。我假设您可能已经在这里开始,但这是从Understand Firebase Realtime Database Rules

开始的地方