Я создаю игру, в которой у вас есть два варианта: играть в игру и просматривать глобальные и локальные рекорды. Я создал систему регистрации и входа в систему. После успешного входа в систему вы можете 1. играть в игру, 2. проверять рекорды и 3. выходить из системы.

Я размещаю сервер с nodejs. Проблема в том, что можно легко поместить localhost: 3000 / menu для доступа к меню без входа в систему. Как мне сделать остальную часть сайта недоступной, если вы не вошли в систему? Это код, который я использую для отображения страниц:

app.get('/', function(req, res) {
    res.sendFile(path.join(__dirname + '/public/index.html'));
});

app.get('/signup', function(req, res) {
    res.sendFile(path.join(__dirname + '/public/signup.html'));
});

app.get('/menu', function(req, res) {
    res.sendFile(path.join(__dirname + '/public/menu.html'));
});

app.get('/highscores', function(req, res) {
    res.sendFile(path.join(__dirname + '/public/highscores.html'));
});

app.get('/main', function(req, res) {
    res.sendFile(path.join(__dirname + '/public/main.html'));
});

Мой друг сказал мне, что я могу сделать что-то вроде этого:

app.get('<username>/menu',

Есть ли хороший способ реализовать это или есть лучшие решения?

0
Sergio 3 Дек 2020 в 23:35

1 ответ

Лучший ответ

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

Затем, когда пользователь запрашивает маршрут /menu, вы должны проверить, есть ли токен в локальном хранилище или там, где вы хотите его сохранить, и, что наиболее важно, проверить, что токен действителен, что он не поддельный.

0
valfur03 3 Дек 2020 в 20:48