直接访问axios拦截器中firebase 9的id令牌

syqv5f0l  于 2022-11-29  发布在  iOS
关注(0)|答案(1)|浏览(148)

有没有办法直接在axios拦截器中从firebase 9获取id令牌?在firebase 8中是可以的。

import axios from "axios";
import config from "../config";
import { getAuth, getIdToken } from "firebase/auth";

const API = axios.create({
  responseType: "json",
  baseURL: config.ApiUrl
});

API.interceptors.request.use(async (request) => {
  const auth = getAuth();
  const { currentUser } = auth;
  
  request.headers = {
    Authorization: `Bearer ${await currentUser.getIdToken()}`,
  };
  return request;

});

currentUser首先是null,因为它是由firebase异步加载的,如何直接访问它,而不总是遇到第一次崩溃的问题,因为用户还没有加载?
谢谢你的帮助。

h79rfbju

h79rfbju1#

您可以创建一个等待onAuthStateChanged()加载身份验证状态并返回包含用户令牌的承诺的函数。
第一个
在使用getAuth()之前,请确保您已经初始化了Firebase SDK。我建议创建一个不同的文件firebase.js,初始化所需的服务,并按照this answer中的说明导出示例。

相关问题