From 428f63946b44259e50f4d6f5b26bab6994cac638 Mon Sep 17 00:00:00 2001 From: Mattias Erming Date: Thu, 11 Sep 2014 13:37:16 -0700 Subject: [PATCH] Added password hashing --- client/js/shout.js | 1 - package.json | 19 ++++++++++--------- src/command-line/add.js | 18 ++++++++++++------ src/server.js | 11 +++++++---- 4 files changed, 29 insertions(+), 20 deletions(-) diff --git a/client/js/shout.js b/client/js/shout.js index d02848b9..97508edd 100644 --- a/client/js/shout.js +++ b/client/js/shout.js @@ -142,7 +142,6 @@ $(function() { channels: [data.chan] }) ); - sidebar.find(".chan") .sort(function(a, b) { return $(a).data("id") - $(b).data("id") }) .last() diff --git a/package.json b/package.json index b97e114d..d5571a6b 100644 --- a/package.json +++ b/package.json @@ -1,20 +1,20 @@ { "name": "shout", "description": "A web IRC client", - "version": "0.24.0", + "version": "0.25.0", "author": "Mattias Erming", "preferGlobal": true, "bin": { "shout": "index.js" }, - "main": "http://localhost:9000/", - "node-main": "./index.js", - "window": { - "title": "Shout", - "toolbar": false, - "height": 640, - "width": 1024 - }, + "main": "http://localhost:9000/", + "node-main": "./index.js", + "window": { + "title": "Shout", + "toolbar": false, + "height": 640, + "width": 1024 + }, "repository": { "type": "git", "url": "https://github.com/erming/shout.git" @@ -32,6 +32,7 @@ ], "license": "MIT", "dependencies": { + "bcrypt": "^0.8.0", "commander": "^2.3.0", "connect": "~2.19.6", "lodash": "~2.4.1", diff --git a/src/command-line/add.js b/src/command-line/add.js index 58d0a9d7..9becffe1 100644 --- a/src/command-line/add.js +++ b/src/command-line/add.js @@ -1,4 +1,5 @@ var ClientManager = new require("../clientManager"); +var bcrypt = require("bcrypt"); var fs = require("fs"); var program = require("commander"); var mkdirp = require("mkdirp"); @@ -46,11 +47,16 @@ program if (err) { return; } - var success = manager.addUser( - name, - password - ); - console.log("Added '" + name + "'."); - console.log(""); + bcrypt.hash(password, 8, function(err, hash) { + if (err) { + return; + } + manager.addUser( + name, + hash + ); + console.log("Added '" + name + "'."); + console.log(""); + }); }); }); diff --git a/src/server.js b/src/server.js index ba503372..0a12a754 100644 --- a/src/server.js +++ b/src/server.js @@ -1,4 +1,5 @@ var _ = require("lodash"); +var bcrypt = require("bcrypt"); var Client = require("./client"); var ClientManager = require("./clientManager"); var config = require("../config.json"); @@ -94,11 +95,13 @@ function auth(data) { }); init(socket, client); } else { - var success = 0; + var success = false; _.each(manager.clients, function(client) { - if (client.config.user == data.user && client.config.password == data.password) { - init(socket, client); - success++; + if (client.config.user == data.user) { + if (bcrypt.compareSync(data.password, client.config.password)) { + init(socket, client); + success = true; + } } }); if (!success) {