Node.js - Как скрыть html страницы? - PullRequest
0 голосов
/ 21 января 2020

У меня есть html страниц, которые не должны видеть пользователи, которые не вошли в систему. Я использовал приведенную ниже команду, и мои html страницы стали опубликованными c.

app.use(express.static('public'));

Например, я не хочу, чтобы пользователи, которые не вошли в систему, увидели эту страницу.

http://localhost: 3000 / admin. html

ПРИМЕЧАНИЕ. я говорю не о поваре ie. При вводе адреса страницы html на панели инструментов, если он не вошел в систему, он не сможет получить доступ к этой странице.

1 Ответ

0 голосов
/ 21 января 2020

Создайте пользовательское промежуточное ПО static, с помощью которого вы можете проверить путь (имя файла для этого случая).

Я попытаюсь объяснить с помощью комментариев в примере кода:

// path.join here makes it work cross platform with Windows / Linux / etc
var statics = express.static(path.join(__dirname, 'public'));


function secureStatic(pathsToSecure = []) {
  return function (req, res, next) {
    if (pathsToSecure.length === 0) {
      return statics(req, res, next); // Do not secure, forward to static route
    }

    if (pathsToSecure.indexOf(req.path) > -1) {
      return res.status(403).send('<h1>403 Forbidden</h1>'); // Stop request
    }

    return statics(req, res, next); // forward to static route
  };
}


// add public files. List all "private" paths (file)
app.use(secureStatic(['admin.html'])); // instead of app.use(express.static('public'));

Но с этим промежуточным ПО никто не может запросить admin.html файл через ваш express сервер.

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