Advertisement
WatermellonLOL

Untitled

May 23rd, 2017
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var client = require("socket.io").listen(8001).sockets;
  2. var mysql = require("mysql");
  3. var colors = require("colors");
  4. var crypto = require("crypto");
  5. var sanitizer = require("sanitizer");
  6. var fs = require("fs");
  7.  
  8. var config = {
  9.     host: "localhost",
  10.     user: "root",
  11.     password: "",
  12.     database: "melonpw"
  13. };
  14.  
  15. var auth;
  16.  
  17. var num = 0;
  18. var con;
  19.  
  20. function log(text, color) {
  21.     var d = new Date();
  22.     var h = d.getHours();
  23.     var m = d.getMinutes();
  24.     var ap = "AM";
  25.     if (h > 12) {
  26.         h -= 12;
  27.         var ap = "PM";
  28.     }
  29.     if (m < 10) {
  30.         m = "0" + m;
  31.     }
  32.     time = h + ":" + m + " " + ap;
  33.  
  34.     if (typeof(color) == "undefined") {
  35.         display = colors.grey(time) + ": " + text;
  36.         console.log(display);
  37.     } else {
  38.         console.log(colors.grey(time) + ": " + colors[color](text));
  39.     }
  40. }
  41.  
  42. function handleConnection() {
  43.     con = mysql.createConnection(config);
  44.  
  45.     con.connect(function(err) {
  46.         if (err) {
  47.             log("An error has occurred while connection: " + err, "red");
  48.             setTimeout(handleConnection, 2000);
  49.         } else {
  50.             log("Connection successful.", "green");
  51.         }
  52.     });
  53.  
  54.     con.on("error", function(err) {
  55.         console.log("Error: " + err);
  56.         if (err.code === "PROTOCOL_CONNECTION_LOST") {
  57.             handleConnection();
  58.         } else {
  59.             throw err;
  60.         }
  61.     });
  62. }
  63.  
  64. function getCurrentTime() {
  65.     var date = new Date();
  66.     var hours = date.getHours();
  67.     var minutes = date.getMinutes();
  68.     var period = "AM";
  69.  
  70.     if (minutes < 10) {
  71.         minutes = "0" + minutes;
  72.     }
  73.  
  74.     if (hours > 12) {
  75.         hours -= 12;
  76.         period = "PM";
  77.     }
  78.  
  79.     return hours + ":" + minutes + " " + period;
  80. }
  81.  
  82. function genID(length) {
  83.     var chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVYXYZ-_';
  84.     var result = '';
  85.     for (var i = length; i > 0; --i) result += chars[Math.floor(Math.random() * chars.length)];
  86.     return result;
  87. }
  88.  
  89. handleConnection();
  90. client.on("connection", function(socket) {
  91.  
  92. socket.on("attempt-login", function(data) {
  93.     var cleanedUsername = sanitizer.sanitize(data.username);
  94.     var secret = data.password;
  95.     var hashedPassword = crypto.createHmac('sha256', secret).update('WatermellonLOL').digest('hex');
  96.     var post = {username: cleanedUsername, password: hashedPassword};
  97.  
  98.     var check = con.query('SELECT * FROM users WHERE username LIKE ?', cleanedUsername,
  99.         function(err, res) {
  100.             if (res.length == 1) {
  101.                 if (hashedPassword == res[0].password) {
  102.                     var code = genID(24);
  103.                     /*auth[cleanedUsername] = {
  104.                         code: code
  105.                     };*/
  106.                     var data = {info: "success"/*, code: code*/};
  107.                     socket.emit('login-result', data);
  108.                 } else {
  109.                     var data = {info: "password"};
  110.                     socket.emit('login-result', data);
  111.                 }
  112.                
  113.  
  114.             } else {
  115.                 var data = {info: "username"};
  116.                 socket.emit('login-result', data);
  117.             }
  118.         });
  119. });
  120.  
  121. socket.on("attempt-register", function(data) {
  122.     var cleanedUsername = sanitizer.sanitize(data.username);
  123.     var secret = data.password;
  124.     var hashedPassword = crypto.createHmac('sha256', secret).update('WatermellonLOL').digest('hex');
  125.     var post = {username: cleanedUsername, password: hashedPassword};
  126.  
  127.     var check = con.query('SELECT * FROM users WHERE username LIKE ?', cleanedUsername,
  128.         function(err, res) {
  129.             if (res.length == 0) {
  130.                 var query = con.query('INSERT INTO users SET ?', post,
  131.                     function(err, res) {
  132.                         log("New user has registered - " + data.username + ".", "green");
  133.                     });
  134.             } else {
  135.                 var data = {info: "username"};
  136.                 socket.emit('register-result', data);
  137.             }
  138.         });
  139.  
  140.     con.escape();
  141. });
  142.  
  143. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement