- 我有一个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);
}
});
});
1条答案
按热度按时间sq1bmfud1#
我用一个小技巧解决了这个问题,没有使用中间件