O diretório middleware
O diretório middleware contém suas aplicações intermediárias. O intermediário permite você definir funções personalizadas que podem ser executadas antes da renderização, seja de uma página ou um grupo de páginas (esquema).
O intermediário partilhado deve ser colocado dentro do diretório middleware/. O nome do ficheiro será o nome do intermediário (middleware/auth.js será o intermediário auth). Você pode também definir intermediário específico da página ao usar uma função diretamente, vê intermediário anónimo .
Um intermediário recebe o contexto como o primeiro argumento.
export default function (context) {
  // Adiciona a propriedade `userAgent` ao contexto
  context.userAgent = process.server
    ? context.req.headers['user-agent']
    : navigator.userAgent
}
No modo universal, os intermediários serão chamados uma vez no lado do servidor (na primeira requisição para a aplicação Nuxt, exemplo de quando estiverem diretamente acessando a aplicação ou atualizado a página) e no lado do cliente quando estiverem navegando para as rotas adiante. Com ssr: false, o intermediário será chamado no lado do cliente em ambas situações.
O intermédio será executado em série nesta ordem:
- 
nuxt.config.js(na ordem dentro do ficheiro)
- Esquemas correspondidos
- Páginas correspondidas
O intermediário do roteador
Um intermediário pode ser assíncrono. Para fazer isso retorne uma Promise ou usar async/await.
import http from 'http'
export default function ({ route }) {
  return http.post('http://my-stats-api.com', {
    url: route.fullPath
  })
}
Depois, dentro do seu nuxt.config.js, use a chave router.middleware.
export default {
  router: {
    middleware: 'stats'
  }
}
Agora o intermediário stats será chamado para toda mudança de rota.
Você pode adicionar o seu intermediário (até mesmo vários) também para um esquema ou página específica.
export default {
  middleware: ['auth', 'stats']
}
Intermediário nomeado
Você pode criar o intermediário nomeado ao criar um ficheiro dentro do diretório middleware/, o nome do ficheiro será o nome do intermediário.
export default function ({ store, redirect }) {
  // Se o usuário não estiver autenticado
  if (!store.state.authenticated) {
    return redirect('/login')
  }
}
<template>
  <h1>Secret page</h1>
</template>
<script>
  export default {
    middleware: 'authenticated'
  }
</script>
Intermediário anónimo
Se você precisar usar um intermediário somente para uma página específica, você pode diretamente usar uma função para isso (ou um arranjo de funções):
<template>
  <h1>Secret page</h1>
</template>
<script>
  export default {
    middleware({ store, redirect }) {
      // Se o usuário não estiver autenticado
      if (!store.state.authenticated) {
        return redirect('/login')
      }
    }
  }
</script>
 Paiva
 
        Paiva
        Florian Reuschel
 
        Florian Reuschel
        Sébastien Chopin
 
        Sébastien Chopin
        Daniel Roe
 
        Daniel Roe
        Rishi Raj Jain
 
        Rishi Raj Jain
        Clément Ollivier
 
        Clément Ollivier
        Savas Vedova
 
        Savas Vedova
        Steven Soekha
 
        Steven Soekha
        Vinícius Alves
 
        Vinícius Alves
        Kareem Dabbeet
 
        Kareem Dabbeet
        Valentín Costa
 
        Valentín Costa
        Ryan Skinner
 
        Ryan Skinner
        Alex Hirzel
 
        Alex Hirzel
        Ajeet Chaulagain
 
        Ajeet Chaulagain
        René Eschke
 
        René Eschke
        Nico Devs
 
        Nico Devs
        Muhammad
 
        Muhammad
        Nazaré da Piedade
 
        Nazaré da Piedade
        Naoki Hamada
 
        Naoki Hamada
        Tom
 
        Tom
        Yann Aufray
 
        Yann Aufray
        Anthony Chu
 
        Anthony Chu
        Nuzhat Minhaz
 
        Nuzhat Minhaz
        Lucas Portet
 
        Lucas Portet
        Richard Schloss
 
        Richard Schloss
        bpy
 
        bpy
        Antony Konstantinidis
 
        Antony Konstantinidis
        Hibariya
 
        Hibariya
        Jose Seabra
 
        Jose Seabra
        Eze
 
        Eze
        Florian LEFEBVRE
 
        Florian LEFEBVRE
        Lucas Recoaro
 
        Lucas Recoaro
        Julien SEIXAS
 
        Julien SEIXAS
        Hugo
 
        Hugo
        Sylvain Marroufin
 
        Sylvain Marroufin
        Spencer Cooley
 
        Spencer Cooley
        Piotr Zatorski
 
        Piotr Zatorski
        Vladimir Semenov
 
        Vladimir Semenov
        Harry Allen
 
        Harry Allen
        kazuya kawaguchi
 
        kazuya kawaguchi
        Unai Mengual
 
        Unai Mengual
        Hyunseung Lee
 
        Hyunseung Lee
        Alexandre Chopin
 
        Alexandre Chopin
        pooya parsa
 
        pooya parsa
        Nick Medrano
 
        Nick Medrano
        Mosaab Emam
 
        Mosaab Emam
        Iljs Путлер Капут
 
        Iljs Путлер Капут
        Heitor Ramon Ribeiro
 
        Heitor Ramon Ribeiro
        Nero
 
        Nero
        Yoon Han
 
        Yoon Han
        Ikko Eltociear Ashimine
 
        Ikko Eltociear Ashimine
        FamCodings
 
        FamCodings
        Ayouli
 
        Ayouli
        F. Hinkelmann
 
        F. Hinkelmann
        felipesuri
 
        felipesuri
        Christophe Carvalho Vilas-Boas
 
        Christophe Carvalho Vilas-Boas
        Leoš Literák
 
        Leoš Literák
        Trizotti
 
        Trizotti