9
클라우드 기능을 트리거하기 전에 사용자가 firebase-authorized인지 확인하는 방법이 있습니까? (또는 함수 내에서)Firebase 용 클라우드 기능을위한 보안 HTTP 트리거
클라우드 기능을 트리거하기 전에 사용자가 firebase-authorized인지 확인하는 방법이 있습니까? (또는 함수 내에서)Firebase 용 클라우드 기능을위한 보안 HTTP 트리거
예. Firebase ID 토큰을 요청과 함께 보내야합니다 (예 : AJAX 요청의 Authorization
헤더). 그런 다음 Firebase Admin SDK를 사용하여 확인하십시오. Firebase 샘플 클라우드 기능 샘플 저장소에는 in-depth example이 있습니다. 그것은이 같은 (SO 게시물에 대한 짧은 만든)를 찾습니다
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/how-to-protect-firebase-cloud-function-http-endpoint-to-allow-only-firebase-auth) –