I'm using a layout that relies on the state of the vuex:
<template>
<div>
<p>{{user.name}}</p>
<nuxt/>
</div>
</template>
<script>
import { mapState } from 'vuex'
export default {
middleware: ['auth'],
computed: {
...mapState({
user: state => state.currentUser, // or null in user not authenticated
}),
},
}
</script>
Middleware auth
check state.currentUser
and redirect to login page if it's null
export default function ({ store, redirect }) {
console.log('\nCheck user data ...\n')
if (!store.state.currentUser) {
return redirect('/login')
}
}
So, now, if I'm not authorized and trying to load a page with this template, I get an error in the server console:
Check user data ...
[Vue warn]: Error in render function:
(found in <Sidebar> at /run/media/alex/LinWin/Develop/fb-scaner/resources/layouts/sidebar.vue)
TypeError: Cannot read property 'name' of null
at Proxy.render (resources/layouts/sidebar.vue?7fdc:2:0)
at VueComponent.Vue._render (/run/media/alex/LinWin/Develop/fb-scaner/node_modules/vue/dist/vue.runtime.common.js:3605:22)
at renderComponent (/run/media/alex/LinWin/Develop/fb-scaner/node_modules/vue-server-renderer/build.js:6698:25)
at RenderContext.renderNode (/run/media/alex/LinWin/Develop/fb-scaner/node_modules/vue-server-renderer/build.js:6681:7)
at RenderContext.next (/run/media/alex/LinWin/Develop/fb-scaner/node_modules/vue-server-renderer/build.js:169:14)
at RenderContext.next (/run/media/alex/LinWin/Develop/fb-scaner/node_modules/vue-server-renderer/build.js:178:12)
at cachedWrite (/run/media/alex/LinWin/Develop/fb-scaner/node_modules/vue-server-renderer/build.js:30:9)
at renderElement (/run/media/alex/LinWin/Develop/fb-scaner/node_modules/vue-server-renderer/build.js:6732:5)
at renderNode (/run/media/alex/LinWin/Develop/fb-scaner/node_modules/vue-server-renderer/build.js:6685:7)
at renderComponent (/run/media/alex/LinWin/Develop/fb-scaner/node_modules/vue-server-renderer/build.js:6704:3)
The code of the page itself is very simple.
<template>
<pre>
Home page
</pre>
</template>
<script>
export default {
layout: 'sidebar',
}
</script>
<!--cmty--><!--cmty_prevent_hook--><div align="right"><sub><em>This bug report is available on <a href="https://nuxtjs.cmty.io">Nuxt.js</a> community (<a href="https://nuxtjs.cmty.io/nuxt/nuxt.js/issues/c656">#c656</a>)</em></sub></div>