12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- var express = require('express');
- var router = express.Router();
- var passport = require('passport');
- var ExpressBrute = require('express-brute');
- //var ExpressBruteRedisStore = require('express-brute-redis');
- var moment = require('moment');
- /**
- * Setup Express-Brute
- */
- /*var EBstore = new ExpressBruteRedisStore({
- prefix: 'bf:',
- client: red
- });
- var bruteforce = new ExpressBrute(EBstore, {
- freeRetries: 5,
- minWait: 60 * 1000,
- maxWait: 5 * 60 * 1000,
- refreshTimeoutOnRequest: false,
- failCallback(req, res, next, nextValidRequestDate) {
- req.flash('alert', {
- class: 'error',
- title: 'Too many attempts!',
- message: "You've made too many failed attempts in a short period of time, please try again " + moment(nextValidRequestDate).fromNow() + '.',
- iconClass: 'fa-times'
- });
- res.redirect('/login');
- }
- });*/
- /**
- * Login form
- */
- router.get('/login', function(req, res, next) {
- res.render('auth/login', {
- usr: res.locals.usr
- });
- });
- router.post('/login', /*bruteforce.prevent,*/ function(req, res, next) {
- passport.authenticate('local', function(err, user, info) {
- if (err) { return next(err); }
- if (!user) {
- req.flash('alert', {
- class: 'error',
- title: 'Invalid login',
- message: "The email or password is invalid.",
- iconClass: 'fa-times'
- });
- return res.redirect('/login');
- }
- req.logIn(user, function(err) {
- if (err) { return next(err); }
- //req.brute.reset(function () {
- return res.redirect('/');
- //});
- });
- })(req, res, next);
- });
- /**
- * Logout
- */
- router.get('/logout', function(req, res) {
- req.logout();
- res.redirect('/');
- });
- module.exports = router;
|