A single proxy server to authenticate requests to multiple internal APIs
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
2.1 KiB

8 years ago
8 years ago
8 years ago
8 years ago
  1. var bcrypt = require('bcrypt');
  2. var mysql = require('mysql');
  3. var dotEnv = require('dot-env');
  4. module.exports.DatabaseLookup = function(req, done) {
  5. var connection = mysql.createConnection({
  6. socket : process.env.DB_SOCKET,
  7. user : process.env.DB_USER,
  8. password : process.env.DB_PASSWORD,
  9. database : process.env.DB_DATABASE
  10. });
  11. connection.connect(function(err) {
  12. if (err) done(err);
  13. });
  14. connection.query(mysql.format('SELECT password FROM users WHERE email = ?', [req.body.email]), function(err, result, fields) {
  15. if (err) done(err);
  16. if (!result || !result[0] || !result[0].password) return done(null, false);
  17. var password = result[0].password.replace('$2y$', '$2a$');
  18. var salt = password.slice(0,29);
  19. bcrypt.hash(req.body.password, salt, function(err, enc) {
  20. if (err) {
  21. console.log(err);
  22. return done(err, null);
  23. } else if (enc == password) {
  24. // console.log('Authorized');
  25. return done(null, true);
  26. } else {
  27. // console.log('Not Authorized');
  28. return done(null, null);
  29. }
  30. });
  31. });
  32. connection.end();
  33. };
  34. module.exports.ClientLookup = function(client_id, done) {
  35. this.client_id = client_id;
  36. console.log(this.client_id);
  37. var connection = mysql.createConnection({
  38. socket : process.env.DB_SOCKET,
  39. user : process.env.DB_USER,
  40. password : process.env.DB_PASSWORD,
  41. database : process.env.DB_DATABASE
  42. });
  43. connection.connect(function(err) {
  44. if (err) return done(err, false);
  45. });
  46. connection.query('SELECT url FROM clients WHERE client_id = \''+this.client_id+'\'', function(err, result, fields) {
  47. if (err) return done(err, false);
  48. if (!result || !result[0] || !result[0].url) return done(null, false);
  49. console.log(result[0].url);
  50. return done(null, result[0].url);
  51. });
  52. connection.end();
  53. };