mirror of
https://github.com/PretendoNetwork/website.git
synced 2026-09-29 03:56:56 -05:00
Moved redirect check to middleware
This commit is contained in:
9
src/middleware/redirect.js
Normal file
9
src/middleware/redirect.js
Normal file
@@ -0,0 +1,9 @@
|
||||
async function redirectMiddleware(request, response, next) {
|
||||
if (request.method === 'POST') {
|
||||
request.redirect = request.body.redirect?.startsWith('/') ? request.body.redirect : null;
|
||||
}
|
||||
|
||||
return next();
|
||||
}
|
||||
|
||||
module.exports = redirectMiddleware;
|
||||
@@ -220,7 +220,6 @@ router.get('/login', async (request, response) => {
|
||||
|
||||
router.post('/login', async (request, response) => {
|
||||
const { username, password } = request.body;
|
||||
let { redirect } = request.body;
|
||||
|
||||
let apiResponse = await util.apiPostGetRequest('/v1/login', {}, {
|
||||
username,
|
||||
@@ -255,11 +254,7 @@ router.post('/login', async (request, response) => {
|
||||
|
||||
response.cookie('ph', encryptedBody.toString('hex'), { domain: '.pretendo.network' });
|
||||
|
||||
if (!redirect.startsWith('/')) {
|
||||
redirect = null;
|
||||
}
|
||||
|
||||
response.redirect(redirect || '/account');
|
||||
response.redirect(request.redirect || '/account');
|
||||
});
|
||||
|
||||
router.get('/register', async (request, response) => {
|
||||
@@ -290,7 +285,6 @@ router.get('/register', async (request, response) => {
|
||||
|
||||
router.post('/register', async (request, response) => {
|
||||
const { email, username, mii_name, password, password_confirm, 'h-captcha-response': hCaptchaResponse } = request.body;
|
||||
let { redirect } = request.body;
|
||||
|
||||
response.cookie('email', email, { domain: '.pretendo.network' });
|
||||
response.cookie('username', username, { domain: '.pretendo.network' });
|
||||
@@ -316,11 +310,7 @@ router.post('/register', async (request, response) => {
|
||||
response.clearCookie('username', { domain: '.pretendo.network' });
|
||||
response.clearCookie('mii_name', { domain: '.pretendo.network' });
|
||||
|
||||
if (!redirect.startsWith('/')) {
|
||||
redirect = null;
|
||||
}
|
||||
|
||||
response.redirect(redirect || '/account');
|
||||
response.redirect(request.redirect || '/account');
|
||||
});
|
||||
|
||||
router.get('/logout', async(_request, response) => {
|
||||
|
||||
@@ -6,9 +6,10 @@ const morgan = require('morgan');
|
||||
const expressLocale = require('express-locale');
|
||||
const cookieParser = require('cookie-parser');
|
||||
const Stripe = require('stripe');
|
||||
const logger = require('./logger');
|
||||
const redirectMiddleware = require('./middleware/redirect');
|
||||
const database = require('./database');
|
||||
const util = require('./util');
|
||||
const logger = require('./logger');
|
||||
const config = require('../config.json');
|
||||
const defaultLocale = require('../locales/US_en.json');
|
||||
|
||||
@@ -19,25 +20,7 @@ const stripe = new Stripe(config.stripe.secret_key);
|
||||
logger.info('Setting up Middleware');
|
||||
app.use(morgan('dev'));
|
||||
app.use(express.urlencoded({ extended: true }));
|
||||
|
||||
logger.info('Setting up static public folder');
|
||||
app.use(express.static('public'));
|
||||
|
||||
logger.info('Importing page routers');
|
||||
const routers = {
|
||||
home: require('./routers/home'),
|
||||
faq: require('./routers/faq'),
|
||||
docs: require('./routers/docs'),
|
||||
progress: require('./routers/progress'),
|
||||
account: require('./routers/account'),
|
||||
blog: require('./routers/blog'),
|
||||
localization: require('./routers/localization'),
|
||||
aprilfools: require('./routers/aprilfools')
|
||||
};
|
||||
|
||||
app.use(cookieParser());
|
||||
|
||||
// Locale express middleware setup
|
||||
app.use(expressLocale({
|
||||
'priority': ['cookie', 'accept-language', 'map', 'default'],
|
||||
cookie: { name: 'preferredLocale' },
|
||||
@@ -82,6 +65,22 @@ app.use(expressLocale({
|
||||
],
|
||||
'default': 'en-US'
|
||||
}));
|
||||
app.use(redirectMiddleware);
|
||||
|
||||
logger.info('Setting up static public folder');
|
||||
app.use(express.static('public'));
|
||||
|
||||
logger.info('Importing page routers');
|
||||
const routers = {
|
||||
home: require('./routers/home'),
|
||||
faq: require('./routers/faq'),
|
||||
docs: require('./routers/docs'),
|
||||
progress: require('./routers/progress'),
|
||||
account: require('./routers/account'),
|
||||
blog: require('./routers/blog'),
|
||||
localization: require('./routers/localization'),
|
||||
aprilfools: require('./routers/aprilfools')
|
||||
};
|
||||
|
||||
app.use('/', routers.home);
|
||||
app.use('/faq', routers.faq);
|
||||
|
||||
Reference in New Issue
Block a user