Как установить промежуточное ПО для заданного c маршрута в Nuxt - PullRequest
0 голосов
/ 03 апреля 2020

Я пытаюсь защитить маршрут API в моем приложении Nuxt. js с помощью модуля проверки подлинности Nuxt. В моем nuxt.config. js у меня есть:

serverMiddleware: [
    { path: '/api', handler: '~/api/index.js' }
]

И я хочу использовать это:

router: {
    middleware: ['auth']
}

Как добавить промежуточное ПО только для указанного c маршрута, который не компонент страницы?

Ответы [ 2 ]

1 голос
/ 04 апреля 2020

Это не способ защитить маршрут API. Я предполагаю, что вы используете сервер express. js.

Например: у вас есть конечная точка API /getUserData. С express. js это будет выглядеть примерно так:

app.get("/getUserData/:user", ()=> {
   res.json({
      message: "I am a protected API endpoint."
   });
});

Для защиты этой конечной точки вы должны создать промежуточное программное обеспечение, которое проверяет, разрешено ли пользователю вводить эту конечную точку API или нет. Давайте создадим пример. Сначала создайте функцию и назовем ее «auth»:

function auth(req, res, next){
   let user = req.params.user;
   if(user == "admin"){
      next(); //This means to continue its request
   }else {
      res.status(403).json({ message: "Sorry, but you are not allowed }); //Status 403 means forbidden.
   }
}

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

app.get("/getUserData/:user", auth,  ()=> {
   res.json({
      message: "I am a protected API endpoint."
   });
});

Я добавил промежуточное программное обеспечение auth к этому маршруту, чтобы защитить его. Вы можете проверить это сейчас. С localhost:3000/api/getUserData/admin вы должны увидеть сообщение. Если вы выберете что-то другое, то admin вы получите ошибку

0 голосов
/ 04 апреля 2020

Вы можете добавить

<script>
export default {
middleware: 'authenticated'
}
</script>

в маршруты, которые хотите защитить

ps: маршрут является компонентом страницы в nuxt

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...