Проверка HTTP-заголовков для аутентификации на каждой странице с помощью nuxt.js


Проверка HTTP-заголовков для аутентификации на каждой странице с помощью nuxt.js

08.09.2020 06:59:41 Просмотров 1 Источник

Я пытаюсь проверить каждый HTTP-запрос к серверу nuxt на авторизацию.

В этом официальном учебнике мне нужно добавить функцию проверки на каждой странице, которая, похоже, не работает для меня, так как я ищу способ написать промежуточное программное обеспечение, которое проверяет все запросы к серверу nuxt.

Итак, я нашел поддержку промежуточного программного обеспечения nuxt, но официальный документ действительно недружелюбен, я ничего не могу понять.

То, что я ожидаю,-это модуль, подобный плагину, который позволяет мне поместить мое промежуточное программное обеспечение в nuxt. Точно так же, как то, что может быть достигнуто в Express (как показано ниже).

export default function (req, res, next)

Так что я могу легко проверять заголовки на каждый запрос к nuxt.

Как я могу этого достичь? Большое спасибо.

У вопроса есть решение - Посмотреть?

Ответы - Проверка HTTP-заголовков для аутентификации на каждой странице с помощью nuxt.js / Validate http headers for authentication in every page using nuxt.js

Является ответом!
zernonia

08.09.2020 10:49:58

Я считаю, что Nuxt Middleware - это то, что вам нужно.

В middleware/auth.js

// write any custom validation functions

export default function (context) {
  context.userAgent = process.server
    ? context.req.headers['user-agent']
    : navigator.userAgent
}

затем в nuxt.config.js

// this will register the middleware functions above for every route

export default {
  router: {
    middleware: 'auth'
  }
}
Ifaruki

08.09.2020 11:05:29

Перейдите в свой каталог middleware/ и создайте auth.js

Первый аргумент - это ваш контекст. Контекст содержит много вещей, таких как ваш магазин, приложение, маршрут, перенаправление, а также содержит req

Вы можете проверить, какой контекст в нем есть: https://nuxtjs.org/api/context/

export default function ({ req, res, redirect }) {
  let authenticated = false;
  if(!authenticated) {
     redirect("/login")
  }
}

Теперь вы можете перейти на свою страницу и добавить это в свой export default {}

middleware: ["auth"]

Теперь, если вы попытаетесь получить доступ к странице, вы должны быть перенаправлены на вход

Помочь в развитии проекта:
Закрыть X