Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var app = require('express')();
- var http = require('http').Server(app);
- var io = require('socket.io')(http);
- var path = require('path');
- var DIST_DIR = path.join(__dirname, "bin");
- var express = require('express');
- //Getting session store
- var session = require('express-session');
- var cookieParser = require('cookie-parser');
- var sessionStore = new session.MemoryStore();
- var handshakeData ={};
- var cookie = require('cookie');
- //Importing routes
- var login = require('./routes/login.js');
- var registration = require('./routes/registration.js');
- var home = require('./routes/home.js');
- //Getting cookies from request header. so that from it we can get sessionid.
- io.use(function(socket, next) {
- handshakeData = socket.request;
- var cookies = cookie.parse(handshakeData.headers.cookie);
- //Bringing sessionid and storing in a global variable
- console.log("***********************Server*********************");
- console.log("");
- console.log('All cookies parsed in io.use ( %s )', JSON.stringify(cookies));
- handshakeData.sessionID = cookies['connect.sid'].split('.')[0].split(':'[1];
- console.log('All cookies parsed at server ( %s )', JSON.stringify(cookies));
- console.log('Session id at server cookie value in io.use( %s )',
- JSON.stringify(handshakeData.sessionID));
- next();
- });
- //Bringing session data by sending "sessionid" to sessionStore
- (MemoryStore)place
- io.on('connection', function(socket){
- sessionStore.get(handshakeData.sessionID, function (err, session) {
- handshakeData.session = session;
- //Now we can retrieve all session data. But sessionID sent was
- not correct
- });
- console.log('user connected');
- socket.on('new message', function(msg){
- console.log('Server recieved new message: '+msg);
- io.emit('new message', msg);
- });
- socket.on('disconnect', function(){
- console.log('user disconnected');
- });
- });
- app.use('/', login);
- app.use('/registration', registration);
- app.use('/home', home);
- http.listen(8080, function(){
- console.log("listening on port 8080");
- });
- var bodyParser = require('body-parser');
- var urlencodedParser = bodyParser.urlencoded({ extended: false })
- var cookieParser = require('cookie-parser');
- var session = require('express-session');
- var sessionStore = new session.MemoryStore();
- var login_success = 0;
- router.use(cookieParser());
- router.use(session({ cookie: {
- maxAge : 24*60*60*1000
- },
- store: sessionStore,
- saveUninitialized: true,
- resave: true,
- secret: '1234567890QWERT'
- }));
- router.get('/', function(req, res){
- console.log("Actual session id before login: "+ req.sessionID);
- //Clearing cookies at client side.
- res.clearCookie("login_message");
- res.clearCookie("connect.sid");
- res.clearCookie("io");
- res.clearCookie("user_name");
- res.clearCookie("user_id");
- if (login_success == 2)
- {
- res.cookie('login_message', 'incorrectCredentials');
- login_success = 0;
- }
- res.sendFile(path.join(SRC_DIR,"login.html"));
- // res.sendFile(path.join(__dirname, '../bin', 'login.html'));
- });
- router.post('/', urlencodedParser, function(req, res){
- console.log("database called");
- //Fetching form data
- var username = req.body.loginusername;
- var password = req.body.loginpassword;
- //Connection string to datanbase
- var MongoClient = require('mongodb').MongoClient;
- var url = "mongodb://localhost:27017/WebChat";
- //Comparing username and password.
- MongoClient.connect(url, function(err, db) {
- if (err) throw err;
- var query = { email: username, password: password };
- db.collection("Profile").find(query).toArray(function(err, result) {
- if (err) throw err;
- console.log(result);
- db.close();
- if (result.length != 0)
- {
- console.log("login success");
- login_success = 1;
- //Setting session variables
- req.session.userid = username;
- req.session.username= result[0].firstname;
- console.log("***********************Login*********************");
- console.log("");
- console.log("Actual session id at login: "+ req.sessionID);
- console.log("Session userid at server set to :"+ req.session.userid);
- console.log("Session name at server set to :"+ req.session.username);
- //res.sendFile(path.join(SRC_DIR,"home.html"));
- // res.status(200).send(req.session);
- console.log("Session reload called");
- res.redirect('/home');
- }
- else
- {
- //**It is for when user come to login page with entering wrong credentials
- login_success = 2;
- console.log("login failed");
- res.redirect('http://localhost:8080');
- }
- });
- });
- //export this router to use in our server.js
- module.exports = router;
- var express = require('express');
- var router = express.Router();
- var path = require("path");
- var SRC_DIR=path.join(__dirname, "../src/views");
- var session = require('express-session');
- cookie = require('cookie');
- var cookieParser = require('cookie-parser');
- var sessionStore = new session.MemoryStore();
- var handshakeData ={};
- router.use(cookieParser());
- router.use(session({ cookie: {
- maxAge : 24*60*60*1000
- },
- store: sessionStore,
- saveUninitialized: true,
- resave: true,
- secret: '1234567890QWERT'
- }));
- router.get('/', function(req, res){
- //setting cookie at client side
- res.clearCookie("user_id");
- res.clearCookie("user_name");
- res.cookie('user_id', req.session.userid);
- res.cookie('user_name', req.session.username);
- // res.status(200).send(req.session);
- console.log(" session reload called");
- setTimeout(function(){
- res.sendFile(path.join(SRC_DIR,"home.html"));
- }, 5000);
- console.log("***********************Home*********************");
- console.log("");
- console.log("Actual session id at home: "+ req.sessionID);
- console.log("Cookie userid at client set to :"+ req.session.userid);
- console.log("Cookie username at client set to :"+ req.session.username);
- });
- //export this router to use in our server.js
- module.exports = router;
- class Home extends React.Component {
- constructor(props) {
- super(props);
- this.state = {messages: [],socket: io.connect('http://localhost:8080')};
- this.send = this.send.bind(this)
- }
- }
- export default Home
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement