Advertisement
Guest User

Untitled

a guest
Dec 27th, 2016
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.67 KB | None | 0 0
  1. var express = require('express');
  2. var bodyParser = require("body-parser");
  3. var mysql = require('mysql');
  4. var path = require('path');
  5. var cookieParser = require('cookie-parser');
  6. var bodyParser = require('body-parser');
  7. var expressValidator = require('express-validator');
  8. var flash = require('connect-flash');
  9. var session = require('express-session');
  10. var passport = require('passport');
  11. var LocalStrategy = require('passport-local').Strategy;
  12. var mongo = require('mongodb');
  13. var mongoose = require('mongoose');
  14.  
  15. mongoose.connect('mongodb://localhost/WelcomeLimoUsa');
  16. var db = mongoose.connection;
  17.  
  18. var routes = require('./routes/index');
  19. var users = require('./routes/users');
  20.  
  21. // Init App
  22. var app = express();
  23.  
  24. // BodyParser Middleware
  25. app.use(bodyParser.json());
  26. app.use(bodyParser.urlencoded({ extended: false }));
  27. app.use(cookieParser());
  28.  
  29. // Set Static Folder
  30. app.use(express.static(__dirname + '/'));
  31.  
  32. // Express Session
  33. app.use(session({
  34. secret: 'secret',
  35. saveUninitialized: true,
  36. resave: true
  37. }));
  38.  
  39.  
  40. // Passport init
  41. app.use(passport.initialize());
  42. app.use(passport.session());
  43.  
  44. // Express Validator
  45. app.use(expressValidator({
  46. errorFormatter: function(param, msg, value) {
  47. var namespace = param.split('.')
  48. , root = namespace.shift()
  49. , formParam = root;
  50.  
  51. while(namespace.length) {
  52. formParam += '[' + namespace.shift() + ']';
  53. }
  54. return {
  55. param : formParam,
  56. msg : msg,
  57. value : value
  58. };
  59. }
  60. }));
  61.  
  62. // Connect Flash
  63. app.use(flash());
  64.  
  65. // Global Variables
  66. app.use(function (req, res, next) {
  67. res.locals.success_msg = req.flash('success_msg');
  68. res.locals.error_msg = req.flash('error_msg');
  69. res.locals.error = req.flash('error');
  70. res.locals.user = req.user || null;
  71. next();
  72. });
  73.  
  74. app.use('/admin', routes);
  75. app.use('/users', users);
  76.  
  77. <form action="/users/admin" method="post" class="well form-horizontal">
  78. <p>
  79. <strong>Admin User Name: </strong>
  80. <input type="text" name="username" size="25" class="form-control" placeholder="User Name">
  81. <p>
  82. <p>
  83. <strong align="center">Admin Password: </strong>
  84. <input align="center" type="password" size="15" name="password" class="form-control" placeholder="password">
  85. <p>
  86. <p>
  87. <input align="center" type="submit" value="Log In" class="btn btn-success" style="font-weight:600">
  88. <input align="center" type="reset" value="Clear" class="btn btn-default" style="font-weight:600">
  89. </form>
  90.  
  91. var express = require('express');
  92. var passport = require('passport');
  93. var LocalStrategy = require('passport-local').Strategy;
  94.  
  95. var User = require('../models/user');
  96.  
  97. var router = express.Router();
  98.  
  99. // Login
  100. router.get('/admin', function(req, res){
  101. res.render('./login.html');
  102. });
  103.  
  104. router.get('/error', function(req, res){
  105. res.sendfile("./loginerror.html");
  106. });
  107.  
  108. passport.use(new LocalStrategy(
  109. function(username, password, done) {
  110. User.getUserByUsername(username, function(err, user){
  111. if(err) throw err;
  112. if(!user){
  113. return done(null, false, {message: 'Unknown User'});
  114. }
  115.  
  116. User.comparePassword(password, user.password, function(err, isMatch){
  117. if(err) throw err;
  118. if(isMatch){
  119. return done(null, user);
  120. } else {
  121. return done(null, false, {message: 'Invalid password'});
  122. }
  123. });
  124. });
  125. }));
  126.  
  127. passport.serializeUser(function(user, done) {
  128. done(null, user.id);
  129. });
  130.  
  131. passport.deserializeUser(function(id, done) {
  132. User.getUserById(id, function(err, user) {
  133. done(err, user);
  134. });
  135. });
  136.  
  137. router.post('/admin', passport.authenticate('local', { successRedirect: '/admin',
  138. failureRedirect: '/users/error',
  139. failureFlash: true }), function(req,res){
  140. var user_name = req.body.userid;
  141. var password=req.body.password;
  142. console.log("User name = " + user_name + ", password is "+ password);
  143.  
  144. res.redirect('/admin');
  145. });
  146.  
  147.  
  148.  
  149. module.exports = router;
  150.  
  151. var mongoose = require('mongoose');
  152. var bcrypt = require('bcryptjs');
  153.  
  154. // User Schema
  155. var UserSchema = mongoose.Schema({
  156. username: {
  157. type: String,
  158. index:true
  159. },
  160. password: {
  161. type: String
  162. }
  163. });
  164.  
  165. var User = module.exports = mongoose.model('User', UserSchema);
  166.  
  167. module.exports.getUserByUsername = function(username, callback){
  168. var query = {username: username};
  169. User.findOne(query, callback);
  170. }
  171.  
  172. module.exports.getUserById = function(id, callback){
  173. User.findById(id, callback);
  174. }
  175.  
  176. module.exports.comparePassword = function(candidatePassword, hash, callback){
  177. bcrypt.compare(candidatePassword, hash, function(err, isMatch) {
  178. if(err) throw err;
  179. callback(null, isMatch);
  180. });
  181. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement