Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var UserSchema = new Schema({
- email: String,
- username: String,
- provider: String,
- hashed_password: String,
- salt: String,
- });
- function generateToken() {
- var buf = new Buffer(16);
- for (var i = 0; i < buf.length; i++) {
- buf[i] = Math.floor(Math.random() * 256);
- }
- var id = buf.toString('base64');
- return id;
- }
- var express = require('express');
- var path = require('path');
- var favicon = require('static-favicon');
- var flash = require('connect-flash');
- var morgan = require('morgan');
- var cookieParser = require('cookie-parser');
- var cookieSession = require('cookie-session');
- var bodyParser = require('body-parser');
- var http = require('http');
- var https = require('https');
- var fs = require('fs');
- var path = require('path');
- var passport = require('passport');
- var LocalStrategy = require('passport-local').Strategy;
- var app = express();
- app.set('port', 3000);
- app.set('views', path.join(__dirname, 'views'));
- app.set('view engine', 'jade');
- var cookies = cookieSession({
- name: 'abc123',
- secret: 'mysecret',
- maxage: 10 * 60 * 1000
- });
- app.use(cookies);
- app.use(favicon());
- app.use(flash());
- app.use(morgan());
- app.use(bodyParser.json());
- app.use(bodyParser.urlencoded());
- app.use(cookieParser());
- app.use(passport.initialize());
- app.use(passport.session());
- app.use(express.static(path.join(__dirname, 'public')));
- module.exports = app;
- passport.use(new LocalStrategy(function (username, password, done) {
- return users.validateUser(username, password, done);
- }));
- //KEEP ENTIRE USER OBJECT IN THE SESSION
- passport.serializeUser(function (user, done) {
- done(null, user);
- });
- passport.deserializeUser(function (user, done) {
- done(null, user);
- });
- //Error handling after everything else
- app.use(logErrors); //log all errors
- app.use(clientErrorHandler); //special handler for xhr
- app.use(errorHandler); //basic handler
- http.createServer(app).listen(app.get('port'), function () {
- console.log('Express server listening on HTTP port ' + app.get('port'));
- });
- app.get('/forgot', function (req, res) {
- if (req.isAuthenticated()) {
- //user is alreay logged in
- return res.redirect('/');
- }
- //UI with one input for email
- res.render('forgot');
- });
- app.post('/forgot', function (req, res) {
- if (req.isAuthenticated()) {
- //user is alreay logged in
- return res.redirect('/');
- }
- users.forgot(req, res, function (err) {
- if (err) {
- req.flash('error', err);
- }
- else {
- req.flash('success', 'Please check your email for further instructions.');
- }
- res.redirect('/');
- });
- });
- app.get('/reset/:token', function (req, res) {
- if (req.isAuthenticated()) {
- //user is alreay logged in
- return res.redirect('/');
- }
- var token = req.params.token;
- users.checkReset(token, req, res, function (err, data) {
- if (err)
- req.flash('error', err);
- //show the UI with new password entry
- res.render('reset');
- });
- });
- app.post('/reset', function (req, res) {
- if (req.isAuthenticated()) {
- //user is alreay logged in
- return res.redirect('/');
- }
- users.reset(req, res, function (err) {
- if (err) {
- req.flash('error', err);
- return res.redirect('/reset');
- }
- else {
- req.flash('success', 'Password successfully reset. Please login using new password.');
- return res.redirect('/login');
- }
- });
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement