내 문제는 엄격하게 '/'경로 주위에 있습니다. 이것이 루트 루트라고 생각합니다. 사용자가 내 사이트에 연결하면 해당 사용자에게 세션 데이터가 있는지 확인하여 브라우저를 닫을 때 항상 다시 로그인 할 필요가 없도록합니다. 사용자에게 세션 데이터가 없으면 내 웹 사이트가 가입 라우터로 리디렉션됩니다.루트 경로가 리디렉션되지 않음
내 웹 사이트가 www.example.com 인 것처럼 해봅시다. www.example.com/buy로 이동하여 사용자에 대한 세션 데이터가없는 경우 웹 사이트는 자동으로 www.example.com/signup으로 리디렉션합니다. www.example.com/sell을 입력하고 세션 데이터가없는 경우에도 마찬가지입니다. 그러나 www.example.com을 입력하고 세션 데이터가없는 경우 URL은 www.example.com/signup으로 리디렉션되지 않습니다.
왜 루트 경로에 대한이 '특별한'대우가 있으며 다른 경로와 동일한 동작을 수행하려면 어떻게해야합니까? 나는이 문제에이 속하는 생각 내 server.js
에서
코드 : server.js의
app.get('/session', (req, res) => {
res.send(req.session.auth);
})
.get('/signup', (req, res) => {
if (!req.session.auth) {
res.sendFile(path.join(__dirname, 'client/public/index.html'));
} else {
return res.redirect('/');
}
})
.get('*', (req, res) => {
if (req.session.auth) {
res.sendFile(path.join(__dirname, 'client/public/index.html'));
} else {
return res.redirect('/signup');
}
});
전체 페이지는
const express = require('express'),
app = express(),
bodyParser = require('body-parser'),
path = require('path'),
initDatabase = require('./db/dbConfig'),
port = process.env.PORT || 9000,
io = require('socket.io').listen(app.listen(port,() => {
initDatabase();
console.log('Successfully connected to port ', port);
})),
session = require('express-session'),
MySQLStore = require('express-mysql-session')(session),
sessionStore = new MySQLStore({
host: require('./actualKeys').host,
port: 3306,
user: require('./actualKeys').username,
password: require('./actualKeys').password,
database: require('./actualKeys').database,
checkExpirationInterval: 60000,
expiration: 43200000,
}),
users = {},
rooms = {};
// express
app.use(express.static('client/build'))
.use(bodyParser.urlencoded({
extended: true,
}))
.use(bodyParser.json())
.use(session({
secret: require('./actualKeys').sessionCode,
store: sessionStore,
resave: false,
saveUninitialized: true,
}));
require('./server/routers/router')(app);
app.get('/session', (req, res) => {
res.send(req.session.auth);
})
.get('/signup', (req, res) => {
if (!req.session.auth) {
res.sendFile(path.join(__dirname, 'client/public/index.html'));
} else {
return res.redirect('/');
}
})
.get('*', (req, res) => {
if (req.session.auth) {
res.sendFile(path.join(__dirname, 'client/public/index.html'));
} else {
return res.redirect('/signup');
}
});
는