好吧,我从 nuxt 开始,我有以下路线:
/home
/dashboard
/login
我想保护 /dashboard,但仅限于使用 localStorage
中的令牌登录的用户。
我想到的最简单的方法是创建一个 /middleware/auth.js
export default function () {
if (!window.localStorage.getItem('token')) {
window.location = '/login'
}
}
并将其注册到 /dashboard/index.vue 组件中。
<script>
export default {
middleware: 'auth',
}
</script>
但是我无法在中间件内访问 localStorage
,因为 LocalStorage 是客户端。
我已经尝试在 created()
仪表板布局中添加相同的检查,但我无法返回 window not set mounted()
太晚了,它只能在页面完全组装后检查.
那么我该如何实现呢?注意:我不打算在这个项目中使用任何 Vuex。
原文由 Yung Silva 发布,翻译遵循 CC BY-SA 4.0 许可协议
我使用 了 cookie-universal-nuxt
在用于登录操作的 vuex 存储上,我设置了一个带有令牌的提交
并在中间件中访问它作为 middleware/auth.js