9
在觸發雲端功能之前,有沒有方法可以檢查用戶是否經過Firebase授權? (或在功能範圍內)用於Firebase雲端功能的安全HTTP觸發器
在觸發雲端功能之前,有沒有方法可以檢查用戶是否經過Firebase授權? (或在功能範圍內)用於Firebase雲端功能的安全HTTP觸發器
是的。您需要將Firebase ID令牌與請求一起發送(例如,在AJAX請求的Authorization
標頭中),然後使用Firebase Admin SDK對其進行驗證。 Firebase樣本存儲庫的Cloud Functions中有一個in-depth example。它看起來是這樣的(這麼崗位上做出了更短):
const functions = require('firebase-functions');
const admin = require('firebase-admin');
const cors = require('cors')();
const validateFirebaseIdToken = (req, res, next) => {
cors(req, res,() => {
const idToken = req.headers.authorization.split('Bearer ')[1];
admin.auth().verifyIdToken(idToken).then(decodedIdToken => {
console.log('ID Token correctly decoded', decodedIdToken);
req.user = decodedIdToken;
next();
}).catch(error => {
console.error('Error while verifying Firebase ID token:', error);
res.status(403).send('Unauthorized');
});
});
};
exports.myFn = functions.https.onRequest((req, res) => {
validateFirebaseIdToken(req, res,() => {
// now you know they're authorized and `req.user` has info about them
});
});
的可能的複製[如何保護火力雲功能HTTP端點只允許火力地堡驗證的用戶?](http://stackoverflow.com/questions/ 42751074 /如何做保護,火力點雲功能-HTTP-端點到允許只-火力驗證) –