fixing status codes in redirects
This commit is contained in:
@@ -55,7 +55,7 @@ async function handler(req, res) {
|
|||||||
if (email && password && password === passwordagain && (csi || patreon_magic_key)) {
|
if (email && password && password === passwordagain && (csi || patreon_magic_key)) {
|
||||||
// Check for minimum password length
|
// Check for minimum password length
|
||||||
if (password.length < 12) {
|
if (password.length < 12) {
|
||||||
return res.redirect(makeMsg(csi, email, 'Please enter a password that is at least 12 characters long.'), 303);
|
return res.redirect(303, makeMsg(csi, email, 'Please enter a password that is at least 12 characters long.'));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Retrieve Stripe session and email or get verify patreon magic key
|
// Retrieve Stripe session and email or get verify patreon magic key
|
||||||
@@ -70,14 +70,14 @@ async function handler(req, res) {
|
|||||||
if (!session) { console.error('unable to get session'); }
|
if (!session) { console.error('unable to get session'); }
|
||||||
if (!emailFromSession) { console.error('unable to get email from session'); }
|
if (!emailFromSession) { console.error('unable to get email from session'); }
|
||||||
if (!email === emailFromSession) { console.error('session email does not match form email'); }
|
if (!email === emailFromSession) { console.error('session email does not match form email'); }
|
||||||
return res.redirect('/reactors/create-account?unexpected_error=true', 303);
|
return res.redirect(303, '/reactors/create-account?unexpected_error=true');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if user already exists
|
// Check if user already exists
|
||||||
const existingUser = await db.get('select id from users where email=?', email);
|
const existingUser = await db.get('select id from users where email=?', email);
|
||||||
if (existingUser) {
|
if (existingUser) {
|
||||||
console.error('User already exists');
|
console.error('User already exists');
|
||||||
return res.redirect('/reactors/create-account?unexpected_error=true', 303);
|
return res.redirect(303, '/reactors/create-account?unexpected_error=true');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create new user and subscription
|
// Create new user and subscription
|
||||||
@@ -86,18 +86,18 @@ async function handler(req, res) {
|
|||||||
const userId = await createUser(email, salt, hashRes);
|
const userId = await createUser(email, salt, hashRes);
|
||||||
await createSubscription(userId, sessionType);
|
await createSubscription(userId, sessionType);
|
||||||
console.log('User created successfully');
|
console.log('User created successfully');
|
||||||
return res.redirect('/reactors/account', 303);
|
return res.redirect(303, '/reactors/account');
|
||||||
} else {
|
} else {
|
||||||
// Handle missing or invalid form data
|
// Handle missing or invalid form data
|
||||||
if (!email || !csi) {
|
if (!email || !csi) {
|
||||||
console.error('Missing email or csi');
|
console.error('Missing email or csi');
|
||||||
return res.redirect('/reactors/create-account?unexpected_error=true', 303);
|
return res.redirect(303, '/reactors/create-account?unexpected_error=true');
|
||||||
}
|
}
|
||||||
if (!password) {
|
if (!password) {
|
||||||
return res.redirect(makeMsg(csi, email, 'Please enter a password'), 303);
|
return res.redirect(303, makeMsg(csi, email, 'Please enter a password'));
|
||||||
}
|
}
|
||||||
if (password !== passwordagain) {
|
if (password !== passwordagain) {
|
||||||
return res.redirect(makeMsg(csi, email, 'Passwords did not match. Please try again.'), 303)
|
return res.redirect(303, makeMsg(csi, email, 'Passwords did not match. Please try again.'))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -46,16 +46,16 @@ async function handler(req, res) {
|
|||||||
const expiresDate = new Date(today.getTime() + (1000 * maxAge));
|
const expiresDate = new Date(today.getTime() + (1000 * maxAge));
|
||||||
await db.run('insert into sessions (user_id, session_id, expires) values (?, ?, ?);', userId, sessionId, expiresDate.toISOString());
|
await db.run('insert into sessions (user_id, session_id, expires) values (?, ?, ?);', userId, sessionId, expiresDate.toISOString());
|
||||||
setCookie('session', sessionId, { req, res, maxAge: rememberMe ? maxAge : undefined, httpOnly: true, sameSite: true, secure: process.env.NODE_ENV === 'production' });
|
setCookie('session', sessionId, { req, res, maxAge: rememberMe ? maxAge : undefined, httpOnly: true, sameSite: true, secure: process.env.NODE_ENV === 'production' });
|
||||||
res.redirect('/reactors/account', 303)
|
res.redirect(303, '/reactors/account')
|
||||||
} else {
|
} else {
|
||||||
res.redirect(makeMsg(email, 'Invalid password or account does not exist.'), 303);
|
res.redirect(303, makeMsg(email, 'Invalid password or account does not exist.'));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (!email) {
|
if (!email) {
|
||||||
res.redirect(makeMsg(email, 'Please enter an email address.'), 303);
|
res.redirect(303, makeMsg(email, 'Please enter an email address.'));
|
||||||
}
|
}
|
||||||
if (!password) {
|
if (!password) {
|
||||||
res.redirect(makeMsg(email, 'Please enter a password.'), 303);
|
res.redirect(303, makeMsg(email, 'Please enter a password.'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { deleteCookie } from 'cookies-next';
|
|||||||
export default async function handler(req, res) {
|
export default async function handler(req, res) {
|
||||||
if (req.method === 'POST') {
|
if (req.method === 'POST') {
|
||||||
deleteCookie('session', { req, res, httpOnly: true, sameSite: true, secure: process.env.NODE_ENV === 'production' });
|
deleteCookie('session', { req, res, httpOnly: true, sameSite: true, secure: process.env.NODE_ENV === 'production' });
|
||||||
return res.redirect('/', 303);
|
return res.redirect(303, '/');
|
||||||
} else {
|
} else {
|
||||||
// Handle any other HTTP method
|
// Handle any other HTTP method
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user