好吧,我从 nuxt 开始,我有以下路线:
/home
/dashboard
/login
Run Code Online (Sandbox Code Playgroud)
我想保护 /dashboard,但仅适用于使用localStorage.
我想到的最简单的方法是创建一个 /middleware/auth.js
export default function () {
if (!window.localStorage.getItem('token')) {
window.location = '/login'
}
}
Run Code Online (Sandbox Code Playgroud)
并将其注册到 /dashboard/index.vue 组件中。
<script>
export default {
middleware: 'auth',
}
</script>
Run Code Online (Sandbox Code Playgroud)
但是我无法localStorage在中间件中访问,因为 LocalStorage 是客户端。
我已经尝试在created()仪表板布局中添加相同的检查,但是我无法返回未设置的窗口mounted()为时已晚,只能在页面完全组装后进行检查。
那么我怎样才能做到这一点呢?注意:我不打算在这个项目中使用任何 Vuex。