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

查看:93
本文介绍了admin.auth().verifyIdToken(idToken)错误:无法将Firebase-admin之后的默认凭据加载到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屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆