Skip to content

Instantly share code, notes, and snippets.

@linux08
Created September 8, 2017 05:51
Show Gist options
  • Save linux08/2ea616bc3c97350a2506033f52132ce1 to your computer and use it in GitHub Desktop.
Save linux08/2ea616bc3c97350a2506033f52132ce1 to your computer and use it in GitHub Desktop.
var express = require('express'),
session = require('express-session'),
bodyparser = require('body-parser'),
cors = require('cors'),
mongoose = require('mongoose'),
morgan = require('morgan'),
passport = require('passport'),
flash = require('connect-flash'),
routes = require('./server/controller/index.js'),
cons = require('consolidate'),
swig = require('swig')
app = express();
var uristring = 'mongodb://127.0.0.1:27017/loyaltysplash';
////connect to mongodb
// Makes connection asynchronously. Mongoose will queue up database
// operations and release them when the connection is complete.
mongoose.connect(uristring, function (err, res) {
if (err) {
// console.log('ERROR connecting to: ' + uristring + '. ' + err);
console.log(err)
} else {
console.log('Succeeded connected to: ' + uristring);
}
});
app.use(cors());
app.use(bodyparser.urlencoded({ extended: true }));
app.use(bodyparser.json());
app.use(session({ secret: 'keyboard cat' }));
// // Passport JS is what we use to handle our logins
app.use(passport.initialize());
app.use(passport.session());
// log to the console
app.use(morgan('dev'));
// // The flash middleware let's us use req.flash('error', 'Shit!'), which will then pass that message to the next page the user requests
app.use(flash());
app.use(session({ secret: 'secret', }));
// app.engine('html', require('ejs').renderFile);
app.engine('html', cons.swig);
app.set('view engine', 'html');
app.set('views', __dirname + '/views');
app.use(express.static(__dirname + '/public'));
app.use('/', routes)
app.listen(3333, function () {
console.log(' app listening on port 3333');
});
var express = require('express'),
router = express.Router(),
passport = require('passport'),
Gambler = require('../models/gambler.js'),
LocalStrategy = require('passport-local').Strategy;
passport.serializeUser(function (user, done) {
done(null, user);
});
passport.deserializeUser(function (user, done) {
done(null, user);
});
//============================================= LOGIN =========================================//
passport.use('user', new LocalStrategy({
usernameField: 'email',
passwordField: 'password',
passReqToCallback: true
},
function (req, email, password, done) {
console.log(req.body);
Gambler.findOne({ email: req.body.email }, function (err, user) {
if (user) {
console.log('user details in the db');
console.log(user);
if (user.password !== req.body.password) {
console.log('user not found');
return done(null, false, req.flash('info', 'Wrong password.'));
} else {
console.log('user found');
return done(null, user);
}
} else {
Gambler.findOne({ email: req.body.email }, function (err, data) {
if (!data)
console.log('user not found');
return done(null, false, req.flash('info', 'User dsnt exist.'));
if (data.Password !== req.body.Password)
console.log('wrong password');
return done(null, false, req.flash('info', 'Wrong password.'));
return done(null, data);
});
}
});
}
));
router.post('/login', passport.authenticate('user', {
failureRedirect: '/login',
failureFlash: 'failed Login',
successRedirect: '/pool50',
successFlash: 'You are now logged in'
}));
router.post('/logins',function(req,res){
console.log(req.body);
res.render('index');
})
exports.logout = (req, res) => {
req.logout();
req.flash('success', 'You are now logged out');
res.redirect('/');
}
const isLoggedIn = (req, res, next) => {
if (req.isAuthenticated()) {
next();
return;
}
req.flash('error', 'You must be logged in ');
console.log('you must be logged in');
res.redirect('/login');
};
router.post('/api/signup', function (req, res) {
var gambler = new Gambler();
gambler.fullname = req.body.fullname;
gambler.email = req.body.email;
gambler.phone = req.body.number;
gambler.password = req.body.password;
gambler.save(function (err, user_obj) {
if (err) {
console.log(err);
res.json({ success: false, 'message': err });
if (err.name == 'MongoError' && err.message.indexOf('$email_1') > 0) {
return res.json({ Error: 'Email is already registered. Please choose another' });
} else if (err.name == 'MongoError' && err.message.indexOf('$username_1') > 0) {
return res.json({ success: false, Error: 'Username is already taken. Please choose another' });
}
}
else {
console.log(user_obj);
return res.status(200).json({ success: true, message: "User Registered successfully. Please login ", data: user_obj });
}
});
});
router.get('/pool50', isLoggedIn, function (req, res) {
res.render('poolup50by15k');
});
router.get('/login', function (req, res) {
res.render('login');
});
router.get('/', function (req, res) {
res.render('index');
});
router.get('/register', function (req, res) {
res.render('register');
});
module.exports = router;
<!DOCTYPE html>
<html lang="en">
<head>
<title>SportPoolNG</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="css/loyaltypoolng.css">
</head>
<body class="bg-light loyaltypoolng-body" onload="Load()">
<!--NAV START [Login=No]-->
<nav class="navbar navbar-expand-lg navbar-dark fixed-top bg-dark">
<a class="navbar-brand" href="javascript:history.back()">
<img src="" width="30" height="30" class="d-inline-block align-top" alt="<">
LoyaltyPool
</a>
</nav>
<!--NAV END -->
<!--FORM START-->
<form method="POST" action="/login" enctype="multipart/form-data" class="mx-1" style="margin-top: 5rem;">
<div class="form-group">
<label>Email address</label>
<input type="email" class="form-control" aria-describedby="emailHelp" name="email" id="email" placeholder="Enter email">
</div>
<div class="form-group">
<label>Password</label>
<input type="password" class="form-control" name="password" id="password" placeholder="Password">
</div>
<div class="form-check">
<label class="form-check-label">
<input type="checkbox" class="form-check-input">
keep me in
</label>
</div>
<button type="submit" class="btn btn-primary">Log in</button>
</form>
<!--JavaScripts-->
<script src="bootstrap/js/jquery.min.js"></script>
<script src="bootstrap/js/popper.min.js"></script>
<script src="bootstrap/js/bootstrap.min.js"></script>
<script src="js/loyaltypoolng.js"></script>
</body>
</html>
@LakunleD
Copy link

LakunleD commented Sep 8, 2017

change Log in to and it should work

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment