Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //loading node modules to script server side
- var express = require('express');
- var http = require('http');
- var mysql = require('mysql');
- var flash = require("connect-flash");
- var session = require('client-sessions');
- var passport = require('passport');
- var LocalStrategy = require('passport-local').Strategy;
- var fs = require('fs');
- var app = express();
- var path = require('path');
- var bodyParser = require('body-parser');
- var bcrypt = require('bcryptjs');
- var cookieParser = require('cookie-parser');
- var session = require('express-session');
- var home = path.dirname(__dirname);
- // Application Middleware
- app.use(express.static(home));
- app.use(bodyParser.urlencoded({ extended: true }));
- app.use(flash());
- app.use(passport.initialize());
- app.use(session({secret: "Shh, its a secret!"}));
- app.use(passport.session());
- // creating mysql connection
- var connection = mysql.createConnection({
- host : 'localhost',
- user : 'root',
- password : 'Timilehin@99',
- database : 'sakila',
- port : 3306
- });
- // http request with express' module for serving static files
- connection.connect(function(err) {
- if (err) {
- console.error('error connecting: ' + err.stack);
- return;
- }
- console.log('connected as id ' + connection.threadId);
- });
- // used to serialize the user for the session
- passport.serializeUser(function(user, done) {
- done(null, user.user_id);
- });
- // used to deserialize the user
- passport.deserializeUser(function(id, done) {
- connection.query("select * from users where user_id = "+id,function(err,rows){
- done(err, rows[0]);
- });
- });
- /**
- HTTP request to handle submission of the registeration details
- **/
- app.post('/submit', function(req, response){
- var user = {username: req.body.username, password: req.body.password, email_address: req.body.email};
- //insert into the mysql database
- connection.query('INSERT INTO users SET ?', user, function(error, res){
- if (error){
- console.log('An error has occured! ' + error.stack);
- }
- else {
- req.session.user = true;
- response.sendFile(home + '/dashboard.html', function(err){
- if (err){
- console.log('The file could not be sent');
- }
- else {
- console.log('The file was sent');
- }
- })
- }
- })
- });
- //configuration of passport module to validate username and password
- passport.use(new LocalStrategy({
- usernameField : 'username',
- passwordField : 'password'
- },
- function(username, password, done) { // callback with username and password from our form
- connection.query("SELECT * FROM users WHERE username = '" + username + "' ", function(err,rows){
- if (err){
- return done(err);
- }
- if (!rows.length) {
- return done(null, false); //
- }
- // if the user is found but the password is wrong
- if (!(password === rows[0].password)) {
- return done(null, false);
- }
- // all is well, return successful user
- return done(null, rows[0]);
- });
- }));
- /**
- route for validating username and password
- **/
- app.post('/login',
- passport.authenticate('local', { successRedirect: '/dashboard.html',
- failureRedirect: '/login.html',
- failureFlash: true }),
- function(req, res) {
- req.session.user = true;
- }
- );
- function requireLogin (req, res, next) {
- if (!req.session.user) {
- res.redirect('/login');
- } else {
- next();
- }
- };
- /***
- route authentications
- ***/
- app.get('/dashboard', requireLogin, function (req, res) {
- res.sendFile(home + '/dashboard.html', function(err){
- if (err) console.log(err.stack);
- else console.log('File sent!');
- });
- });
- app.get('/', function (req, res) {
- if (!req.session.user) {
- res.sendFile (home + '/index.html', function(err){
- if (err) console.log(err.stack);
- else console.log('File sent!');
- });
- }
- else {
- res.sendFile(home + '/dashboard.html', function(err){
- if (err) console.log(err.stack);
- else console.log('File sent!');
- });
- }
- });
- app.get('/login', function(req, res){
- res.sendFile(home + '/login.html');
- });
- app.get('/signup', function(req, res){
- res.sendFile(home + '/signup.html');
- });
- app.get('/recover_password', function(req, res){
- res.sendFile(home + '/recover_password.html');
- });
- // listen for requests
- app.listen(8000, function(){
- console.log("xxxxge is running at localhost:8000");
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement