refactor(user): simplify local middleware

This commit is contained in:
cha0s 2022-03-03 12:16:28 -06:00
parent 4e5650b030
commit fa7910c4d3

View File

@ -7,47 +7,22 @@ import LocalStrategy from 'passport-local';
export default { export default {
[Hooks]: { [Hooks]: {
'@flecks/core/config': () => ({ '@flecks/core/config': () => ({
successRedirect: '/',
failureRedirect: '/', failureRedirect: '/',
successRedirect: '/',
}), }),
'@flecks/db/server/models.decorate': ( '@flecks/db/server/models.decorate': (
Flecks.decorate(require.context('./models/decorators', false, /\.js$/)) Flecks.decorate(require.context('./models/decorators', false, /\.js$/))
), ),
'@flecks/http/routes': ({ '@flecks/http/routes': (flecks) => {
config: { const {failureRedirect, successRedirect} = flecks.get('@flecks/user/local/server');
'@flecks/user/local/server': { return [
failureRedirect, {
successRedirect, method: 'post',
path: '/auth/local',
middleware: passport.authenticate('local', {failureRedirect, successRedirect}),
}, },
}, ];
}) => [ },
{
method: 'post',
path: '/auth/local',
middleware: (req, res, next) => {
passport.authenticate(
'local',
(error, user) => {
if (error) {
next(error);
return;
}
if (!user) {
res.redirect(failureRedirect);
return;
}
req.logIn(user, (error) => {
if (error) {
next(error);
return;
}
res.redirect(successRedirect);
});
},
)(req, res, next);
},
},
],
'@flecks/repl/commands': (flecks) => { '@flecks/repl/commands': (flecks) => {
const {User} = flecks.get('$flecks/db.models'); const {User} = flecks.get('$flecks/db.models');
return { return {