Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* EXPRESS SETUP */
- const express = require('express');
- const app = express();
- const bodyParser = require('body-parser');
- app.use(bodyParser.urlencoded({
- extended: true
- }));
- const mongoose = require('mongoose');
- mongoose.connect('mongodb://localhost/MyDatabase');
- const Schema = mongoose.Schema;
- const UserDetail = new Schema({
- username: String,
- password: String
- });
- const UserDetails = mongoose.model('userInfo', UserDetail, 'userInfo');
- const passport = require('passport');
- app.use(require('express-session')({
- secret: 'keyboard cat',
- resave: false,
- saveUninitialized: false
- }));
- app.use(passport.initialize());
- app.use(passport.session());
- //We have to store the data in to req.session.passport={} object
- passport.serializeUser(function(user, done) {
- done(null, user.id);
- });
- //We always need to deserilaize and validate the user
- passport.deserializeUser(function(id, done) {
- User.findById(id, function (err, user) {
- done(err, user);
- });
- });
- const LocalStrategy = require('passport-local').Strategy;
- //There are lot of strategies are there so we can use any of the strategy for an example Oauth, twitter, facebook login mechanisams
- passport.use(new LocalStrategy(
- function (username, password, done) {
- UserDetails.findOne({
- username: username
- }, function (err, user) {
- if (err) {
- return done(err);
- }
- if (!user) {
- return done(null, false);
- }
- if (user.password != password) {
- return done(null, false);
- }
- return done(null, user);
- });
- }
- ));
- app.get('/',
- passport.authenticate('local', {
- failureRedirect: '/error'
- }),
- function (req, res) {
- res.redirect('/success?username=' + req.user.username);
- });
- app.post('/',
- passport.authenticate('local', {
- failureRedirect: '/error'
- }),
- function (req, res) {
- res.redirect('/success?username=' + req.user.username);
- });
- app.get('/success', (req, res) => res.send("Welcome " + req.query.username + "!!"));
- app.get('/error', (req, res) => res.send("error logging in"));
- passport.serializeUser(function (user, cb) {
- cb(null, user.id);
- });
- passport.deserializeUser(function (id, cb) {
- User.findById(id, function (err, user) {
- cb(err, user);
- });
- });
- app.get('/', (req, res) => res.sendFile('auth.html', {
- root: __dirname
- }));
- const port = process.env.PORT || 3000;
- app.listen(port, () => console.log('App listening on port ' + port));
Add Comment
Please, Sign In to add comment