我设置了@nuxtjs/auth
和来宾中间件。但是,如果登录并重新启动浏览器并转到/login
端点,则可以访问该页面,因为state.loggedIn
仅在页面加载后设置。是否可以在中间件和页面加载之前设置state.loggedIn
?
答案为是。
您可以在返回服务器渲染页面之前使用nuxtServerInit来检查请求的连接状态。
在store/index.js
中
actions: {
nuxtServerInit ({ commit }, { req }) {
if (req.session.user) {
commit('user', req.session.user)
}
}
}
参考链接:https://nuxtjs.org/guide/vuex-store#the-nuxtserverinit-action