使用 Nuxt 3 开发应用程序我制作了一个全局中间件,它应该在每个页面加载之前运行。中间件应检查 cookie 中的 JWT 令牌,并询问有关用户的 API 是否存在 JWT。它看起来像那样。
export default defineNuxtRouteMiddleware(async (to, from) => {
const {getUser, authByHash} = useAuthStore();
await getUser();
})
结果 - Nuxt DDOSes API 并每 1-2 秒发送一次请求。无需任何页面刷新和更改。它可以是什么?
附言插件也重复执行
首先,您可能使用了插件自己的存储功能
useAuthStore()
来获取状态,并且可能是插件重复问题导致页面刷新和更改。而是使用 Nuxt 自己的可组合项,例如 useState()
其次,您必须在中间件运行后结合
navigateTo()
方法导航到某个地方,但在您的代码中,承诺后它会做什么没有定义。
第三,为以下状态提供条件:
if(!authByHash) { await navigateTo('/') }
或类似的内容并重定向。
第四,尝试在路由验证级别而不是中间件获取状态检查点,如下所示:
<script setup>
definePageMeta({
validate: async (route) => {
// Check if the id is made up of digits
return /^\d+$/.test(route.params.id)
}
})
</script>