meme-magic
Version:
An A-Frame, React, Redux front-end with Sessions, Websockets, SQL, and Authentication built into the backend.
40 lines (33 loc) • 1.15 kB
JavaScript
;
import express from 'express';
const router = express.Router();
import chalk from 'chalk';
import passport from 'passport';
// The login route.
router.post('/login', (req, res, next) => {
console.log(chalk.green('We got a new order for perfectly salted fries!'));
// The passport callback function.
const authorizeUser = (err, user) => {
if (err) return next(err);
if (!user) {
console.log(chalk.red('We would never sell fries of that quality.'));
return res.status(401).send({ message: 'Failed login attempt.' });
}
// Login time!
req.logIn(user, () => {
console.log(chalk.green('Perfect fries delivered to a hungry customer.'));
res.status(200).send({
user: user.cleanHands()
});
});
};
// Pass passport the authentication function.
passport.authenticate('local', authorizeUser)(req, res, next);
});
// Logout route.
router.get('/logout', (req, res) => {
console.log(chalk.green('User Logout Performed.'));
req.logout();
res.status(200).send({ message: 'Successfully logged out.' });
});
export default router;