Skip to content

Instantly share code, notes, and snippets.

@linux08
Created September 8, 2017 05:51
Show Gist options
  • Select an option

  • Save linux08/2ea616bc3c97350a2506033f52132ce1 to your computer and use it in GitHub Desktop.

Select an option

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

LakunleD commented Sep 8, 2017 •

Copy link
Copy Markdown

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