Public API for a society manager application

register.js 1.1KB

1234567891011121314151617181920212223242526272829303132333435
  1. var Redis = require("ioredis");
  2. var redis = new Redis();
  3. var bcrypt = require('bcrypt-nodejs');
  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 user_object = {};
  15. redis.hgetall(uquery).then(function (result) {
  16. if (result.password && result !== undefined && result !== null) {
  17. res.send({"registered": 0,
  18. "error": 1});
  19. } else {
  20. bcrypt.hash(tmp_password, null, null, function (err, hash) {
  21. user_object["password"] = hash;
  22. user_object["auth-key"] = bcrypt.hashSync(Date.now().toString() + tmp_username);
  23. redis.hset(uquery, "password", user_object.password);
  24. redis.hset(uquery, "auth-key", user_object["auth-key"]);
  25. res.send({"registered": 1,
  26. "auth-key": user_object["auth-key"],
  27. "error": 0});
  28. });
  29. }
  30. });
  31. };