Advertisement
Guest User

Untitled

a guest
May 7th, 2016
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var io = require('socket.io').listen(8787);
  2. var mysql = require('mysql');
  3. var connection = mysql.createConnection({
  4.     host: 'nichtbela.de',
  5.     user: 'user',
  6.     password: 'pass',
  7.     database: 'HTML_Poll'
  8. });
  9.  
  10. connection.connect();
  11.  
  12. io.on('connection', function(socket) {
  13.     socket.on('login', function(message) {
  14.         console.log(message)
  15.             connection.query('SELECT * from `Users` where `Username`= ?', [message.user], function(err, rows, fields) {
  16.             if (!err) {
  17.                 if (rows.length == 1) {
  18.                     if (rows[0].Password === message.pass) {
  19.                         if(rows[0].LastToken == ""){
  20.                             //Generates new Token, if nothing is defiend
  21.                             generateHash(message.user, function(token){
  22.                                             socket.emit('login', {
  23.                                             status: true,
  24.                                             token: token
  25.                                         })
  26.                             })
  27.                         }else{
  28.  
  29.                             //Just returns Token
  30.                             socket.emit('login', {
  31.                             status: true,
  32.                             token: rows[0].LastToken
  33.                             })
  34.                         }
  35.  
  36.                     } else {
  37.  
  38.                         //Wrong Pass
  39.                         console.log("Login failed")
  40.                         socket.emit('login', {
  41.                             status: false
  42.                         })
  43.                     }
  44.                 }else{
  45.  
  46.                     //Wrong User
  47.                     socket.emit('login', {
  48.                         status: false
  49.                     })
  50.                 }
  51.  
  52.             } else {
  53.  
  54.                 //Other errors
  55.                 socket.emit('login', {
  56.                     status: false
  57.                 })
  58.             }
  59.  
  60.         })
  61.     });
  62.     socket.on('checkToken', function(message) {
  63.         checkToken(message.user, message.token, function(verify){
  64.             if(verify){
  65.                 console.log(message.user, message.token)
  66.                 socket.emit('checkToken', {
  67.                    status: true
  68.                 })
  69.             }else{
  70.                 console.log(message.user, message.token)
  71.                socket.emit('checkToken', {
  72.                    status: false
  73.                 })
  74.             }
  75.         })
  76.     })
  77.  
  78.     socket.on('disconnect', function() {});
  79. });
  80. function generateHash(user, callback){
  81.     require('crypto').randomBytes(64, function(err, buffer) {
  82.         var token = buffer.toString('hex');
  83.         console.log(token)
  84.         connection.query('UPDATE `Users` SET `LastToken`= ? WHERE `Username`= ?', [token, user], function(err, rows, fields) {
  85.             callback(token)
  86.         })
  87.     });
  88. }
  89.  
  90. function checkToken(user, Token, callback){
  91.             connection.query('SELECT * from `Users` where `Username`= ?', [user], function(err, rows, fields) {
  92.             if (!err) {
  93.                 if (rows.length == 1) {
  94.                     if (rows[0].LastToken === Token && rows[0].LastToken != "") {
  95.                         //Everything is perfect
  96.                         callback(true)
  97.                     } else {
  98.  
  99.                         //Token is wrong or not set
  100.                         callback(false)
  101.                     }
  102.                 }else{
  103.  
  104.                     //No User
  105.                     callback(false)
  106.                 }
  107.  
  108.             } else {
  109.  
  110.                 //Other error
  111.                 callback(false)
  112.             }
  113.  
  114.         })
  115. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement