🎉 able to login & logout
This commit is contained in:
@@ -1,17 +1,25 @@
|
||||
const express = require('express');
|
||||
const path = require('path');
|
||||
const session = require('express-session');
|
||||
const flash = require('connect-flash');
|
||||
const rateLimit = require('express-rate-limit');
|
||||
const compression = require('compression');
|
||||
const cookieParser = require('cookie-parser');
|
||||
const logger = require('morgan');
|
||||
const http = require('http');
|
||||
const serveStatic = require('serve-static');
|
||||
const config = require('./config');
|
||||
|
||||
const indexRouter = require('./routers/index');
|
||||
const messageRouter = require('./routers/message');
|
||||
const userRouter = require('./routers/user');
|
||||
const { refreshToken } = require('./common/wechat');
|
||||
const { initializeTokenStore } = require('./common/token');
|
||||
|
||||
const app = express();
|
||||
|
||||
app.locals.isLogged = false;
|
||||
app.locals.isAdmin = false;
|
||||
|
||||
setTimeout(async () => {
|
||||
// TODO: Here we need an improvement! I have tried EventEmitter but it's not working. :(
|
||||
await initializeTokenStore();
|
||||
@@ -23,14 +31,49 @@ app.set('views', path.join(__dirname, 'views'));
|
||||
app.set('view engine', 'ejs');
|
||||
app.set('trust proxy', true);
|
||||
|
||||
app.use(
|
||||
rateLimit({
|
||||
windowMs: 30 * 1000,
|
||||
max: 30,
|
||||
})
|
||||
);
|
||||
app.use(
|
||||
'/login',
|
||||
rateLimit({
|
||||
windowMs: 60 * 1000,
|
||||
max: 5,
|
||||
})
|
||||
);
|
||||
app.use(compression());
|
||||
app.use(logger('dev'));
|
||||
app.use(express.json());
|
||||
app.use(express.urlencoded({ extended: false }));
|
||||
app.use(cookieParser());
|
||||
app.use(cookieParser(config.cookie_secret));
|
||||
app.use(
|
||||
session({
|
||||
resave: true,
|
||||
saveUninitialized: true,
|
||||
secret: config.session_secret,
|
||||
})
|
||||
);
|
||||
app.use(flash());
|
||||
app.use(express.static(path.join(__dirname, 'public')));
|
||||
|
||||
app.use('/', indexRouter);
|
||||
app.use(
|
||||
'/public',
|
||||
serveStatic(path.join(__dirname, `public`), {
|
||||
maxAge: '600000',
|
||||
})
|
||||
);
|
||||
app.use('*', (req, res, next) => {
|
||||
if (req.session.user !== undefined) {
|
||||
res.locals.isLogged = true;
|
||||
res.locals.isAdmin = req.session.user.isAdmin;
|
||||
}
|
||||
next();
|
||||
});
|
||||
app.use('/message', messageRouter);
|
||||
app.use('/', indexRouter);
|
||||
app.use('/', userRouter);
|
||||
|
||||
const server = http.createServer(app);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user