Advertisement
Guest User

Untitled

a guest
Aug 24th, 2017
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.28 KB | None | 0 0
  1. var app = require('express')();
  2. var http = require('http').Server(app);
  3. var io = require('socket.io')(http);
  4. var path = require('path');
  5. var DIST_DIR = path.join(__dirname, "bin");
  6. var express = require('express');
  7.  
  8. //Getting session store
  9. var session = require('express-session');
  10. var cookieParser = require('cookie-parser');
  11. var sessionStore = new session.MemoryStore();
  12. var handshakeData ={};
  13. var cookie = require('cookie');
  14.  
  15. //Importing routes
  16. var login = require('./routes/login.js');
  17. var registration = require('./routes/registration.js');
  18. var home = require('./routes/home.js');
  19.  
  20.  
  21. //Getting cookies from request header. so that from it we can get sessionid.
  22. io.use(function(socket, next) {
  23.  
  24. handshakeData = socket.request;
  25. var cookies = cookie.parse(handshakeData.headers.cookie);
  26.  
  27. //Bringing sessionid and storing in a global variable
  28. console.log("***********************Server*********************");
  29. console.log("");
  30. console.log('All cookies parsed in io.use ( %s )', JSON.stringify(cookies));
  31. handshakeData.sessionID = cookies['connect.sid'].split('.')[0].split(':'[1];
  32. console.log('All cookies parsed at server ( %s )', JSON.stringify(cookies));
  33. console.log('Session id at server cookie value in io.use( %s )',
  34. JSON.stringify(handshakeData.sessionID));
  35. next();
  36. });
  37.  
  38. //Bringing session data by sending "sessionid" to sessionStore
  39. (MemoryStore)place
  40. io.on('connection', function(socket){
  41.  
  42. sessionStore.get(handshakeData.sessionID, function (err, session) {
  43. handshakeData.session = session;
  44.  
  45. //Now we can retrieve all session data. But sessionID sent was
  46. not correct
  47.  
  48. });
  49.  
  50. console.log('user connected');
  51. socket.on('new message', function(msg){
  52. console.log('Server recieved new message: '+msg);
  53. io.emit('new message', msg);
  54. });
  55. socket.on('disconnect', function(){
  56. console.log('user disconnected');
  57. });
  58. });
  59.  
  60. app.use('/', login);
  61. app.use('/registration', registration);
  62. app.use('/home', home);
  63.  
  64.  
  65. http.listen(8080, function(){
  66. console.log("listening on port 8080");
  67. });
  68.  
  69. var bodyParser = require('body-parser');
  70. var urlencodedParser = bodyParser.urlencoded({ extended: false })
  71. var cookieParser = require('cookie-parser');
  72. var session = require('express-session');
  73. var sessionStore = new session.MemoryStore();
  74. var login_success = 0;
  75.  
  76. router.use(cookieParser());
  77.  
  78. router.use(session({ cookie: {
  79. maxAge : 24*60*60*1000
  80. },
  81. store: sessionStore,
  82. saveUninitialized: true,
  83. resave: true,
  84. secret: '1234567890QWERT'
  85. }));
  86.  
  87. router.get('/', function(req, res){
  88.  
  89. console.log("Actual session id before login: "+ req.sessionID);
  90. //Clearing cookies at client side.
  91. res.clearCookie("login_message");
  92. res.clearCookie("connect.sid");
  93. res.clearCookie("io");
  94. res.clearCookie("user_name");
  95. res.clearCookie("user_id");
  96.  
  97.  
  98. if (login_success == 2)
  99. {
  100. res.cookie('login_message', 'incorrectCredentials');
  101. login_success = 0;
  102. }
  103.  
  104. res.sendFile(path.join(SRC_DIR,"login.html"));
  105. // res.sendFile(path.join(__dirname, '../bin', 'login.html'));
  106.  
  107. });
  108.  
  109.  
  110.  
  111.  
  112.  
  113. router.post('/', urlencodedParser, function(req, res){
  114.  
  115.  
  116. console.log("database called");
  117.  
  118. //Fetching form data
  119. var username = req.body.loginusername;
  120. var password = req.body.loginpassword;
  121.  
  122.  
  123. //Connection string to datanbase
  124. var MongoClient = require('mongodb').MongoClient;
  125. var url = "mongodb://localhost:27017/WebChat";
  126.  
  127. //Comparing username and password.
  128. MongoClient.connect(url, function(err, db) {
  129. if (err) throw err;
  130. var query = { email: username, password: password };
  131. db.collection("Profile").find(query).toArray(function(err, result) {
  132. if (err) throw err;
  133. console.log(result);
  134. db.close();
  135. if (result.length != 0)
  136. {
  137. console.log("login success");
  138. login_success = 1;
  139.  
  140. //Setting session variables
  141. req.session.userid = username;
  142. req.session.username= result[0].firstname;
  143.  
  144. console.log("***********************Login*********************");
  145. console.log("");
  146.  
  147. console.log("Actual session id at login: "+ req.sessionID);
  148. console.log("Session userid at server set to :"+ req.session.userid);
  149. console.log("Session name at server set to :"+ req.session.username);
  150.  
  151. //res.sendFile(path.join(SRC_DIR,"home.html"));
  152. // res.status(200).send(req.session);
  153.  
  154. console.log("Session reload called");
  155. res.redirect('/home');
  156.  
  157. }
  158. else
  159. {
  160.  
  161. //**It is for when user come to login page with entering wrong credentials
  162. login_success = 2;
  163. console.log("login failed");
  164. res.redirect('http://localhost:8080');
  165.  
  166. }
  167.  
  168.  
  169. });
  170. });
  171.  
  172. //export this router to use in our server.js
  173. module.exports = router;
  174.  
  175. var express = require('express');
  176. var router = express.Router();
  177. var path = require("path");
  178. var SRC_DIR=path.join(__dirname, "../src/views");
  179.  
  180. var session = require('express-session');
  181. cookie = require('cookie');
  182. var cookieParser = require('cookie-parser');
  183. var sessionStore = new session.MemoryStore();
  184. var handshakeData ={};
  185.  
  186. router.use(cookieParser());
  187.  
  188.  
  189. router.use(session({ cookie: {
  190. maxAge : 24*60*60*1000
  191. },
  192. store: sessionStore,
  193. saveUninitialized: true,
  194. resave: true,
  195. secret: '1234567890QWERT'
  196. }));
  197.  
  198.  
  199.  
  200. router.get('/', function(req, res){
  201.  
  202.  
  203. //setting cookie at client side
  204. res.clearCookie("user_id");
  205. res.clearCookie("user_name");
  206.  
  207. res.cookie('user_id', req.session.userid);
  208. res.cookie('user_name', req.session.username);
  209.  
  210.  
  211. // res.status(200).send(req.session);
  212. console.log(" session reload called");
  213. setTimeout(function(){
  214. res.sendFile(path.join(SRC_DIR,"home.html"));
  215. }, 5000);
  216.  
  217. console.log("***********************Home*********************");
  218. console.log("");
  219. console.log("Actual session id at home: "+ req.sessionID);
  220. console.log("Cookie userid at client set to :"+ req.session.userid);
  221. console.log("Cookie username at client set to :"+ req.session.username);
  222.  
  223.  
  224. });
  225.  
  226.  
  227. //export this router to use in our server.js
  228. module.exports = router;
  229.  
  230. class Home extends React.Component {
  231.  
  232. constructor(props) {
  233. super(props);
  234. this.state = {messages: [],socket: io.connect('http://localhost:8080')};
  235. this.send = this.send.bind(this)
  236.  
  237. }
  238. }
  239. export default Home
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement