9
クラウド機能をトリガーする前にユーザーがfirebase-authorizedであるかどうかを確認する方法はありますか? (または機能内)Firebaseのクラウド機能用のセキュアなHTTPトリガー
クラウド機能をトリガーする前にユーザーがfirebase-authorizedであるかどうかを確認する方法はありますか? (または機能内)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
});
});
[Firebase認証済みのユーザーだけを許可するfirebase Cloud Function HTTPエンドポイントを保護する方法は?](http://stackoverflow.com/questions/) 42751074/how-to-protect-firebase-cloud-function-http-endpoint-to-allow-only-firebase-auth) –