как запретить другим людям получать URL моего сайта - PullRequest
0 голосов
/ 17 марта 2020

У меня есть маршрут в приложении express, например:

router.get('/search_documents_for_home_page', async (req, res) => {
  var responses = [];
  await Article.find({}).select('image title body').limit(4).sort({ _id:-1 }).then(articles=>{
    responses.push([articles]);
  });
  await Image.find({}).limit(4).sort({ _id:-1 }).then(images=>{
    responses.push([images]);
  });
  await Video.find({}).limit(4).sort({ _id:-1 }).then(videos=>{
    responses.push([videos]);
  });
  await Project.find({}).limit(4).sort({ _id:-1 }).then(projects=>{
    responses.push([projects]);
  });
  res.json(responses);
});

И когда пользователь переходит на домашнюю страницу, отправляется запрос на выборку:

await fetch('/api/search_documents_for_home_page').then(result=>{
    return result.json();
}).then(articles=>{
  // show the users all of the documents
});

Но Я хочу, чтобы только мой сервер мог получить этот URL.

Как мне это сделать?

Я также использую мопса js

1 Ответ

1 голос
/ 17 марта 2020
  1. Вы можете защитить свой API, требуя некоторый тип аутентификации
  2. Вы можете добавить проверку, чтобы убедиться, что запрос поступает от вашего внешнего интерфейса, в зависимости от сервера это может обрабатываться по-разному (например, окно .location.origin)
  3. Включить CORS, запрещает только браузер> вызовы браузера
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...