mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-16 22:27:26 +01:00
* Added session check before route changes, but express isn't finding route * Added a logout component. Changed route to logout on server. Typing 'logout' in URL will logout of Vue + Express * Removed commented text from previous version * Updated logout function to comply with formatting and eliminate unused blocks * Added package-lock.json back * package-lock.json * recreated package-lock file * fix(auth): allow logout from direct visit to /logout path * fix(merge): clean up more misc changes * fix(merge): remove extra file
36 lines
990 B
JavaScript
36 lines
990 B
JavaScript
import { validatePasswordResetCodeAndFindUser } from '../../libs/password';
|
|
|
|
let api = {};
|
|
|
|
// Internal authentication routes
|
|
|
|
// Set a new password after having requested a password reset (GET route to input password)
|
|
api.resetPasswordSetNewOne = {
|
|
method: 'GET',
|
|
url: '/static/user/auth/local/reset-password-set-new-one',
|
|
runCron: false,
|
|
async handler (req, res) {
|
|
const code = req.query.code;
|
|
const user = await validatePasswordResetCodeAndFindUser(code);
|
|
const isValidCode = Boolean(user);
|
|
|
|
const hasError = !isValidCode;
|
|
const message = !isValidCode ? res.t('invalidPasswordResetCode') : null;
|
|
|
|
return res.redirect(`/reset-password?hasError=${hasError}&message=${message}&code=${code}`);
|
|
},
|
|
};
|
|
|
|
// Logout the user from the website.
|
|
api.logout = {
|
|
method: 'GET',
|
|
url: '/logout-server',
|
|
async handler (req, res) {
|
|
if (req.logout) req.logout(); // passportjs method
|
|
req.session = null;
|
|
res.redirect('/');
|
|
},
|
|
};
|
|
|
|
module.exports = api;
|