是否可以仅使用firebase auth然后使用自己的数据库创建自己的api?
所以我写了一个REST API,它使用firebase令牌进行身份验证。
谢谢!
答案 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
开始的地方