Home

Issue: 542

asyncData executed if middleware redirects (client-only)

[issue link]

Consider this example:

secret.vue

<template>
  <div>Hello, {{user.email}}!</div>
</template>

<script>
import Vue from 'vue'

export default {
  middleware: 'authenticated',
  async asyncData ({ req }) {
    // executes even after the middleware redirects
    let { body } = await Vue.http.get('user')
    return {
      title: 'Secret Page',
      user: body
    }
  },
  head () {
    return {
      title: this.title
    }
  }
}
</script>

<style>
</style>

middleware/authenticated.js

export default function ({ store, redirect }) {
  if (!store.getters.isAuthenticated) {
    return redirect('/auth/sign-in')
  }
}

This feature request is available on Nuxt.js community (#c465)