admin.auth().verifyIdToken(idToken)错误:无法将Firebase-admin之后的默认凭据加载到8.0.0 [英] admin.auth().verifyIdToken(idToken) Error: Could not load the default credentials whith firebase-admin after to 8.0.0
问题描述
当我尝试在Firebase中使用中间件时遇到问题
I've got a problem when i'm trying use middleware in firebase
这是我的中间件(FBauth)
this is my middleware (FBauth)
const db = admin.firestore();
const FBAuth = (_req,_res,next) => {
let idToken;
if(_req.headers.authorization && _req.headers.authorization.startsWith('Bearer ')){
idToken = _req.headers.authorization.split ('Bearer ')[1];
console.log('ID TOKEN ------------>', idToken);
}else{
console.error('Nessun Token trovato')
return _res.status(403).json({ error: 'non-autorizzato'});
}
admin.auth().verifyIdToken(idToken)
.then(decodedToken => {
_req.user = decodedToken;
console.log(decodedToken);
return db.collection('users')
.where('userId', '==', _req.user.uid)
.limit(1)
.get();
})
.then(data=>{
console.log('****** reading data ******', data);
_req.user.handle = data.doc[0].data().handle;
return next();
})
.catch(err => {
console.error('********error while verifying token*********', err);
return _res.status(403).json({error: `${err}`});
}
);
};
当我尝试验证令牌时,出现此错误
When i try verify token I've got this error
Error: Could not load the default credentials. Browse to https://cloud.google.com/docs/authentication/getting-started for more information
我认为我的代码正确引导
I think my code is correctly bootstrap
const functions = require('firebase-functions');
const admin = require('firebase-admin');
const app = require('express')();
admin.initializeApp();
const firebaseConfig = {
apiKey: "**************",
authDomain: "***************",
databaseURL: "***************",
projectId: "***************",
storageBucket: "***************",
messagingSenderId: "***************",
appId: "***************",
measurementId: "***************"
};
const firebase = require('firebase');
firebase.initializeApp(firebaseConfig);
此问题可能与此相关----> https://github.com/firebase/firebase-admin-node/issues/738 ?我该怎么解决?
maybe is correlated whit this ISSUE ----> https://github.com/firebase/firebase-admin-node/issues/738 ? How i can solve?
P.S:
我的依赖是这些
"dependencies": {
"express": "^4.17.1",
"firebase": "^7.13.2",
"firebase-admin": "^8.9.0",
"firebase-functions": "^3.3.0"
},
推荐答案
我可以解决跟随这里 https://stackoverflow.com/a/58140389/6414686
您必须从此处下载文件
YOURFILE.JSON https://console.firebase.google.com/u/0/project/[YOURPROJECTID]/settings/serviceaccounts/adminsdk
YOURFILE.JSON https://console.firebase.google.com/u/0/project/[YOURPROJECTID]/settings/serviceaccounts/adminsdk
var serviceAccount = require("./keys/YOURFILE.json");
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "YOURURLFROMPAGE"
});
这篇关于admin.auth().verifyIdToken(idToken)错误:无法将Firebase-admin之后的默认凭据加载到8.0.0的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!