Итак, я начал с создания create-реагирования на приложение и создал приложение реакции на моей машине.Я смог запустить его на localhost и посмотреть веб-страницу.Затем я запустил npm run build
и позволил ему создать каталог ./build
.
Затем я создал файл с именем server.js
со следующим содержимым:
const express = require('express');
const bodyParser = require('body-parser');
const path = require('path');
const auth_key = require('./correct_auth.json').auth;
const app = express();
app.disable('x-powered-by');
app.use(express.static(path.join(__dirname, 'build')));
app.get(
'*',
(req, res) => {
const headers = req.headers;
if (headers[`auth-token`] && headers[`auth-token`] === auth_key) {
console.log(`auth-token: ${headers[`auth-token`]}`);
res.sendFile(path.join(__dirname, `build`, `index.html`));
} else {
res.sendStatus(404);
}
}
);
app.listen(
process.env.PORT || 5000,
() => {
console.log(`Frontend start on localhost:5000.`);
}
);
Моя цель состоит в том, чтобыобслуживать веб-страницу только в том случае, если у человека правильный заголовок авторизационного токена.Однако, посещая сайт без правильного заголовка или даже без указанного заголовка, домашняя страница все еще обслуживается.
Я должен отметить, что у меня это работает на сервере Ubuntu из DigitalOcean и передается на localhost:5000
с использованием Nginx,То есть, я могу посетить api.XXXXX.com, чтобы посетить сайт, и не имеет значения, какие у меня есть заголовки, я всегда обслуживаю сайт.
Моя структура каталогов выглядит следующим образом:
build
correct_auth.json
node_modules
package.json
public
server.js
src