Advertisement
Guest User

Untitled

a guest
Jun 24th, 2019
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.49 KB | None | 0 0
  1. var UserSchema = new Schema({
  2. email: String,
  3. username: String,
  4. provider: String,
  5. hashed_password: String,
  6. salt: String,
  7. });
  8.  
  9. function generateToken() {
  10. var buf = new Buffer(16);
  11. for (var i = 0; i < buf.length; i++) {
  12. buf[i] = Math.floor(Math.random() * 256);
  13. }
  14. var id = buf.toString('base64');
  15. return id;
  16. }
  17.  
  18. var express = require('express');
  19. var path = require('path');
  20. var favicon = require('static-favicon');
  21. var flash = require('connect-flash');
  22. var morgan = require('morgan');
  23. var cookieParser = require('cookie-parser');
  24. var cookieSession = require('cookie-session');
  25. var bodyParser = require('body-parser');
  26. var http = require('http');
  27. var https = require('https');
  28. var fs = require('fs');
  29. var path = require('path');
  30. var passport = require('passport');
  31. var LocalStrategy = require('passport-local').Strategy;
  32.  
  33. var app = express();
  34. app.set('port', 3000);
  35. app.set('views', path.join(__dirname, 'views'));
  36. app.set('view engine', 'jade');
  37.  
  38. var cookies = cookieSession({
  39. name: 'abc123',
  40. secret: 'mysecret',
  41. maxage: 10 * 60 * 1000
  42. });
  43. app.use(cookies);
  44. app.use(favicon());
  45. app.use(flash());
  46. app.use(morgan());
  47. app.use(bodyParser.json());
  48. app.use(bodyParser.urlencoded());
  49. app.use(cookieParser());
  50. app.use(passport.initialize());
  51. app.use(passport.session());
  52. app.use(express.static(path.join(__dirname, 'public')));
  53.  
  54. module.exports = app;
  55.  
  56. passport.use(new LocalStrategy(function (username, password, done) {
  57. return users.validateUser(username, password, done);
  58. }));
  59.  
  60. //KEEP ENTIRE USER OBJECT IN THE SESSION
  61. passport.serializeUser(function (user, done) {
  62. done(null, user);
  63. });
  64. passport.deserializeUser(function (user, done) {
  65. done(null, user);
  66. });
  67.  
  68. //Error handling after everything else
  69. app.use(logErrors); //log all errors
  70. app.use(clientErrorHandler); //special handler for xhr
  71. app.use(errorHandler); //basic handler
  72.  
  73. http.createServer(app).listen(app.get('port'), function () {
  74. console.log('Express server listening on HTTP port ' + app.get('port'));
  75. });
  76.  
  77. app.get('/forgot', function (req, res) {
  78. if (req.isAuthenticated()) {
  79. //user is alreay logged in
  80. return res.redirect('/');
  81. }
  82.  
  83. //UI with one input for email
  84. res.render('forgot');
  85. });
  86.  
  87. app.post('/forgot', function (req, res) {
  88. if (req.isAuthenticated()) {
  89. //user is alreay logged in
  90. return res.redirect('/');
  91. }
  92. users.forgot(req, res, function (err) {
  93. if (err) {
  94. req.flash('error', err);
  95. }
  96. else {
  97. req.flash('success', 'Please check your email for further instructions.');
  98. }
  99. res.redirect('/');
  100. });
  101. });
  102.  
  103. app.get('/reset/:token', function (req, res) {
  104. if (req.isAuthenticated()) {
  105. //user is alreay logged in
  106. return res.redirect('/');
  107. }
  108. var token = req.params.token;
  109. users.checkReset(token, req, res, function (err, data) {
  110. if (err)
  111. req.flash('error', err);
  112.  
  113. //show the UI with new password entry
  114. res.render('reset');
  115. });
  116. });
  117.  
  118. app.post('/reset', function (req, res) {
  119. if (req.isAuthenticated()) {
  120. //user is alreay logged in
  121. return res.redirect('/');
  122. }
  123. users.reset(req, res, function (err) {
  124. if (err) {
  125. req.flash('error', err);
  126. return res.redirect('/reset');
  127. }
  128. else {
  129. req.flash('success', 'Password successfully reset. Please login using new password.');
  130. return res.redirect('/login');
  131. }
  132. });
  133. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement