Advertisement
Guest User

Untitled

a guest
May 5th, 2016
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.18 KB | None | 0 0
  1. var express = require('express');
  2. var crypto = require('crypto');
  3. var app = express();
  4.  
  5.  
  6. var users = [];
  7.  
  8. app.get('/', function (req, res) {
  9. res.send('Hello World!');
  10. });
  11.  
  12. app.get('/newUser', function (req, res) {
  13. var username = req.query.username || '';
  14. var password = req.query.password || '';
  15.  
  16. username = username.replace(/[!@#$%^&*]/g, '');
  17.  
  18. if (!username || !password || users[username]) {
  19. return res.sendStatus(400);
  20. }
  21.  
  22. var salt = crypto.randomBytes(128).toString('base64');
  23. var hash = crypto.pbkdf2Sync(password, salt, 10000, 512);
  24.  
  25. users[username] = {
  26. salt: salt,
  27. hash: hash
  28. };
  29.  
  30. res.sendStatus(200);
  31. });
  32.  
  33. app.get('/auth', function (req, res) {
  34. var username = req.query.username || '';
  35. var password = req.query.password || '';
  36.  
  37. username = username.replace(/[!@#$%^&*]/g, '');
  38.  
  39. if (!username || !password || !users[username]) {
  40. return res.sendStatus(400);
  41. }
  42.  
  43. var hash = crypto.pbkdf2Sync(password, users[username].salt, 10000, 512);
  44.  
  45. if (users[username].hash.toString() === hash.toString()) {
  46. res.sendStatus(200);
  47. } else {
  48. res.sendStatus(401);
  49. }
  50. });
  51.  
  52. app.listen(8080, function () {
  53. console.log('Example app listening on port 8080!');
  54. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement