Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var io = require('socket.io').listen(8787);
- var mysql = require('mysql');
- var connection = mysql.createConnection({
- host: 'nichtbela.de',
- user: 'user',
- password: 'pass',
- database: 'HTML_Poll'
- });
- connection.connect();
- io.on('connection', function(socket) {
- socket.on('login', function(message) {
- console.log(message)
- connection.query('SELECT * from `Users` where `Username`= ?', [message.user], function(err, rows, fields) {
- if (!err) {
- if (rows.length == 1) {
- if (rows[0].Password === message.pass) {
- if(rows[0].LastToken == ""){
- //Generates new Token, if nothing is defiend
- generateHash(message.user, function(token){
- socket.emit('login', {
- status: true,
- token: token
- })
- })
- }else{
- //Just returns Token
- socket.emit('login', {
- status: true,
- token: rows[0].LastToken
- })
- }
- } else {
- //Wrong Pass
- console.log("Login failed")
- socket.emit('login', {
- status: false
- })
- }
- }else{
- //Wrong User
- socket.emit('login', {
- status: false
- })
- }
- } else {
- //Other errors
- socket.emit('login', {
- status: false
- })
- }
- })
- });
- socket.on('checkToken', function(message) {
- checkToken(message.user, message.token, function(verify){
- if(verify){
- console.log(message.user, message.token)
- socket.emit('checkToken', {
- status: true
- })
- }else{
- console.log(message.user, message.token)
- socket.emit('checkToken', {
- status: false
- })
- }
- })
- })
- socket.on('disconnect', function() {});
- });
- function generateHash(user, callback){
- require('crypto').randomBytes(64, function(err, buffer) {
- var token = buffer.toString('hex');
- console.log(token)
- connection.query('UPDATE `Users` SET `LastToken`= ? WHERE `Username`= ?', [token, user], function(err, rows, fields) {
- callback(token)
- })
- });
- }
- function checkToken(user, Token, callback){
- connection.query('SELECT * from `Users` where `Username`= ?', [user], function(err, rows, fields) {
- if (!err) {
- if (rows.length == 1) {
- if (rows[0].LastToken === Token && rows[0].LastToken != "") {
- //Everything is perfect
- callback(true)
- } else {
- //Token is wrong or not set
- callback(false)
- }
- }else{
- //No User
- callback(false)
- }
- } else {
- //Other error
- callback(false)
- }
- })
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement