Created
September 8, 2017 05:51
-
-
Save linux08/2ea616bc3c97350a2506033f52132ce1 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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'); | |
}); | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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; | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!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> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
change Log in to and it should work