Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var express = require('express');
- var session = require('express-session');
- var mongoose = require('mongoose');
- var multer = require('multer');
- var passport = require('passport');
- var LocalStrategy = require('passport-local').Strategy;
- var passportLocalMongoose = require('passport-local-mongoose');
- var app = express();
- var uploadDir = __dirname + '/uploads';
- mongoose.connect('mongodb://orion:orion@127.0.0.1:27017/test');
- var Schema = mongoose.Schema;
- var userSchema = new Schema({
- name: String,
- email: String,
- password: String,
- pp: String
- });
- var users = mongoose.model('users', userSchema);
- var port = process.env.PORT || 3000;
- app.set('views', './views');
- app.set('view engine', 'jade');
- app.use('/assets', express.static(__dirname + '/public'));
- app.use(session({secret: 'supernova', saveUninitialized: true, resave: true}));
- app.use(passport.initialize());
- app.use(passport.session());
- userSchema.plugin(passportLocalMongoose);
- passport.serializeUser(function (user, done) {
- done(null, user.id);
- });
- passport.deserializeUser(function (id, done) {
- users.findById(id, function (err, user) {
- done(err, user);
- });
- });
- passport.use(new LocalStrategy({
- usernameField: 'email',
- passwordField: 'password'
- }, function (username, password, done) {
- users.findOne({email: username}, function (err, user) {
- if (err) {
- return done(err);
- }
- if (!user) {
- return done(null, false, {message: 'Incorrect username.'});
- }
- if (!user.validPassword(password)) {
- return done(null, false, {message: 'Incorrect password.'});
- }
- return done(null, user);
- });
- }));
- app.all('/', function (req, res) {
- res.render('login');
- })
- app.all('/register', function (req, res) {
- res.render('register');
- })
- app.all('/login', function (req, res) {
- res.render('login');
- })
- var pp = Date.now() + '.jpg';
- var storage = multer.diskStorage({
- destination: function (request, file, callback) {
- callback(null, uploadDir);
- },
- filename: function (request, file, callback) {
- console.log(file);
- callback(null, pp);
- }
- });
- var upload = multer({storage: storage}).single('proPic');
- app.all('/doReg', upload, function (request, response) {
- var user = users({
- 'name': request.body.name,
- 'email': request.body.email,
- 'password': request.body.password,
- 'pp': pp
- })
- user.save(function (err) {
- if (err) throw err;
- });
- var url = request.protocol + '://' + request.get('host') + '/login'
- response.writeHead(301,
- {Location: url}
- );
- //response.redirect('/login');
- response.end();
- });
- app.all('/doLogin', passport.authenticate('local'), function (req, res) {
- console.log('abc');
- res.redirect('/');
- });
- app.listen(port);
- doctype html
- html
- head
- title.
- Fonebook
- link(rel='stylesheet', href='/assets/bootstrap/css/bootstrap.min.css')
- script(src='https://code.jquery.com/jquery-2.2.0.min.js')
- script(src='/assets/bootstrap/js/bootstrap.min.js')
- body
- div.container
- h3.
- The Fonebook
- form(method="post",action="/doLogin",class="center",id="loginForm")
- div.panel.panel-info
- div.panel-heading.
- Login
- div.panel-body
- div.col-md-offset-3.col-md-6.col-md-offset-3.form-group
- label.
- Email:
- input.form-control(id="email", type="email", name="email", placeholder="Enter email ")
- div.col-md-offset-3.col-md-6.col-md-offset-3.form-group
- label.
- Password:
- input.form-control(id="password", type="password", name="password")
- div.col-md-offset-3.col-md-6.col-md-offset-3.form-group
- a(href='register').
- Don't have an account?
- div.panel-footer
- button.btn.btn-info(type="submit").
- Login
- {
- "name": "fonebook",
- "version": "1.0.0",
- "description": "a simple phonebook",
- "main": "app.js",
- "scripts": {
- "test": "echo "Error: no test specified" && exit 1"
- },
- "keywords": [
- "phonebook"
- ],
- "author": "Orion",
- "license": "ISC",
- "dependencies": {
- "express": "^4.13.4",
- "express-session": "^1.13.0",
- "jade": "^1.11.0",
- "mongoose": "^4.3.6",
- "multer": "^1.1.0",
- "passport": "^0.3.2",
- "passport-local": "^1.0.0",
- "passport-local-mongoose": "^4.0.0"
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement