Public API for a society manager application

register.js 1.2KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. var Redis = require("ioredis");
  2. var redis = new Redis();
  3. var authgen = require("./../../utils/auth-keys.js");
  4. module.exports = {
  5. perform: function(a,b) {
  6. perform(a,b);
  7. }
  8. }
  9. var perform = function (req, res) {
  10. var tmp_username = req.body.user || req.query.user;
  11. var tmp_password = req.body.password || req.query.password;
  12. tmp_username = tmp_username.toLowerCase();
  13. var uquery = 'user:' + tmp_username;
  14. var aquery = "";
  15. var user_object = {};
  16. redis.hgetall(uquery).then(function (result) {
  17. if (result.password && result !== undefined && result !== null) {
  18. res.send({"registered": 0,
  19. "error": 1});
  20. } else {
  21. bcrypt.hash(tmp_password, null, null, function (err, hash) {
  22. user_object["password"] = hash;
  23. user_object["auth-key"] = authgen.generate(tmp_username);
  24. aquery = "auth-key:" + user_object["auth-key"];
  25. redis.hset(uquery, "password", user_object.password);
  26. redis.hset(uquery, "auth-key", user_object["auth-key"]);
  27. redis.set(aquery, tmp_username);
  28. res.send({"registered": 1,
  29. "auth-key": user_object["auth-key"],
  30. "error": 0});
  31. });
  32. }
  33. });
  34. };