【问题标题】:How to get an idToken that is valid for development from firebase without having to spin up my frontend?如何从firebase获取对开发有效的idToken,而无需启动我的前端?
【发布时间】:2021-01-30 22:15:15
【问题描述】:

我正在开发一些 firebase 功能。这将检查用户是否首先登录 firebase。但是,这在开发中有点麻烦。现在我需要先登录前端获取id_token,将其传递给我的函数url,然后查看结果。

我所遵循的过程在官方文档中有描述:https://firebase.google.com/docs/auth/admin/verify-id-tokens

node.js

const admin = require('firebase-admin');
admin.initializeApp();

module.exports = function( request, response ) {
  if( !request.query.id_token )
    response.status(400).json({message: 'id token has not been provided'});

  admin.auth()
  .verifyIdToken( request.query.id_token )
  .then( token => {
    // TODO: redirect to payment portal
    return response.status(200).json({message: 'Success'});
  })
  .catch( error => {
    return response.status(401).json({message: 'You are currently not logged in as an authorised user'});
  })

}

有没有办法从 firebase 获得有效的 id_token 而无需启动我的前端?也欢迎好的和简单的替代解决方案。

注意:我在开发过程中使用的是 firebase 模拟器。

【问题讨论】:

  • 你找到解决办法了吗?我有一个类似的问题here

标签: node.js firebase google-cloud-firestore google-cloud-functions


【解决方案1】:

由于您使用的是 Firebase 模拟器,因此您可以创建一个假用户并以编程方式检索一个 id 令牌。下面的代码创建并登录一个用户并返回一个 id_token 将被您的函数接受。

var firebase = require("firebase/app");
require("firebase/auth");

// Initialize Firebase and connect to the Authentication emulator
var firebaseConfig = {
    // Insert Firebase config here
};
firebase.initializeApp(firebaseConfig);
firebase.auth().useEmulator('http://localhost:9099/');

// Create a fake user and get the token
firebase.auth().createUserWithEmailAndPassword("example@example.com", "password")
    .then((userCredential) => {
        console.log("User created")
    });

firebase.auth().signInWithEmailAndPassword("example@example.com", "password")
    .then((userCredential) => {
        console.log("User logged in")
        userCredential.user.getIdToken().then((idToken) => {
            console.log(idToken)
        });
    });

【讨论】:

    猜你喜欢
    • 2020-06-01
    • 2020-01-03
    • 1970-01-01
    • 2020-04-01
    • 2020-03-04
    • 1970-01-01
    • 2020-10-20
    • 1970-01-01
    • 2020-08-05
    相关资源
    最近更新 更多