使用 Nuxt.js 和 Firebase 中间件进行身份验证

问题描述 投票:0回答:0
  • 我有一个 Nuxt Js 3 + Firebase 项目。在这个项目中,需要登录才能访问管理面板。
  • 我在下面写的代码部分工作正常。

但是,正如你在Gif中看到的,当我在没有登录的情况下进入/admin/dashboard页面时,页面来了几秒钟,即渲染并发送到登录页面。

我要的是先检查是否登录,如果没有登录,则不去/admin/dashboard,一直停留在登录页面。

//middleware/isAuth.js

import { auth } from "~~/firebase/config";

export default defineNuxtRouteMiddleware(async (to, from) => {
  await auth.onAuthStateChanged(async (user) => {
    if (user == null && to.name != "admin") {
      return await navigateTo("/admin");
    } else if (user && to.name == "admin") {
      return navigateTo("/admin/dashboard");
    } else if (user && to.name != "admin") {
      return navigateTo(from.fullPath);
    }
  });
});

firebase firebase-authentication nuxt.js middleware nuxtjs3
© www.soinside.com 2019 - 2024. All rights reserved.