Middlewares are executed in series in this order, nuxt config, in the order within the file, followed by matched layouts and then matched pages. This problem only happens when the middleware executes from server side and NOT from client side. Dont confuse it (server middleware) with routes middleware which are being called before each route by Vue in Client Side or SSR. I also tried to set the cookie manually but nothing works. Firebase Authentication Setup Firebase Authentication With Nuxt.js. Are Hamas' Qassam rockets not very destructive? Let's now use this state to redirect the browser when it's not on a public page and there's no auth: In your Nuxt project, create the file /middleware/auth.js. The auth object in nuxt.config.js would look like this now: create ( { redirectPort : 8443 } ) ) ), environment (only run this in production), url (any path or params in the request to pass on). The problem is that i can't do that because Nuxt doesn't send any cookie along with any request to my backend. Optionally, a custom HTTP status code can be specified for it: Routes middleware is where you can put common application logic such as authentication checks. The problem is that i can't do that because Nuxt doesn't send any cookie along with any request to my backend. We have Router Middleware, Named Middleware and Anonymous Middleware. The middleware can see the user's cookies but won't send any to Django. We have the traditional routing components: