Guest User

Untitled

a guest
Sep 25th, 2018
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.52 KB | None | 0 0
  1. *
  2. * Module dependencies
  3. */
  4.  
  5. var User = require('../models/user')
  6. , UserValidator = require('../validators/user-validator')
  7. , Promise = require('everyauth').Promise;
  8.  
  9. //Everyauth configuration
  10. module.exports = function(everyauth, repository){
  11.  
  12. var validator = new UserValidator(repository);
  13.  
  14. everyauth.everymodule.logoutPath('/user/logout');
  15. everyauth.everymodule.logoutRedirectPath('/');
  16. everyauth.everymodule.findUserById( function (userId, callback) {
  17. repository.get(userId, callback);
  18. // callback has the signature, function (err, user) {...}
  19. });
  20. everyauth.password
  21. .getLoginPath('/user/login') //Uri of path to login page
  22. .postLoginPath('/user/login') //Uri of path to login page form submission
  23. .loginView('user/login.jade')
  24. .loginLocals({
  25. title: 'Login'
  26. })
  27. .authenticate(function(login, password){
  28. var promise = this.Promise();
  29. validator.validateLoginForm(login, password, function(error){
  30. if(error) promise.fulfill(error);
  31.  
  32. repository.get(login, function(error, user){
  33. //Fail the promise if we get an error or can't find the user
  34. if(error) return promise.fail(error);
  35. if(!user) return promise.fulfill(['user _'+ login + '_ does not exist.']);
  36. User.verifyPassword(user.password, user.salt, password, function(error){
  37. //Fail if we get an error during password validation
  38. if(error) return promise.fail(error);
  39. //Otherwise, we can fulfill our promise
  40. promise.fulfill(user);
  41. });
  42. });
  43. });
  44.  
  45. return promise;
  46. })
  47. .loginSuccessRedirect('/')
  48. .getRegisterPath('/user/register') //Uri of path to registration
  49. .postRegisterPath('/user/register') //Uri of path for registration form submission
  50. .registerView('user/register.jade')
  51. .registerLocals({
  52. title: 'Register'
  53. })
  54. .extractExtraRegistrationParams(function(req){
  55. return{
  56. email:req.body.email,
  57. confirmPassword:req.body.confirmPassword
  58. };
  59. })
  60. .validateRegistration(function(newUserAttributes){
  61. var promise = this.Promise();
  62. validator.validateRegistrationForm(convertNewUserAttributes(newUserAttributes), function(error){
  63. if(error) return promise.fulfill(error);
  64. promise.fulfill();
  65. });
  66.  
  67. return promise;
  68. })
  69. .registerUser( function (newUserAttributes) {
  70. var promise = this.Promise();
  71. repository.save(convertToUserObject(newUserAttributes), function(error, data){
  72. if(error) return promise.fail(error);
  73. if(!data) return promise.fulfill(['Unable to save registration']);
  74. promise.fulfill(data);
  75. });
  76. return promise;
  77. })
  78. .registerSuccessRedirect('/'); // Where to redirect to after a successful registration
  79. };
  80.  
  81. function convertNewUserAttributes(newUserAttributes){
  82. return {username:newUserAttributes.login, email:newUserAttributes.email, password:newUserAttributes.password, confirmPassword:newUserAttributes.confirmPassword};
  83. }
  84.  
  85. function convertToUserObject(newUserAttributes){
  86. var user = new User(newUserAttributes.login, newUserAttributes.email, newUserAttributes.password);
  87. user.password = User.encryptPassword(user.password, user.salt);
  88. return user;
  89. }
Add Comment
Please, Sign In to add comment