Advertisement
Guest User

Untitled

a guest
Mar 21st, 2016
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.09 KB | None | 0 0
  1. TypeError: user.setPassword is not a function at
  2.  
  3. var mongoose = require('mongoose');
  4. var crypto = require('crypto');
  5. var jwt = require('jsonwebtoken');
  6.  
  7. var UserSchema = new mongoose.Schema({
  8. username: {type: String, lowercase: true, unique: true},
  9. hash: String,
  10. salt: String
  11. });
  12.  
  13. UserSchema.methods.setPassword = function(password){
  14. this.salt = crypto.randomBytes(16).toString('hex');
  15. this.hash = crypto.pbkdf2Sync(password, this.salt, 1000, 64).toString('hex');
  16. };
  17.  
  18. UserSchema.methods.validPassword = function(password) {
  19. var hash = crypto.pbkdf2Sync(password, this.salt, 1000, 64).toString('hex');
  20. return this.hash === hash;
  21. };
  22.  
  23. UserSchema.methods.generateJWT = function() {
  24.  
  25. // set expiration to 60 days
  26. var today = new Date();
  27. var exp = new Date(today);
  28. exp.setDate(today.getDate() + 60);
  29.  
  30. return jwt.sign({
  31. _id: this._id,
  32. username: this.username,
  33. exp: parseInt(exp.getTime() / 1000),
  34. }, 'SECRET');
  35. };
  36.  
  37. mongoose.model('User', UserSchema);
  38.  
  39. var express = require('express');
  40. var router = express.Router();
  41. var passport = require('passport');
  42. var mongoose = require('mongoose');
  43.  
  44.  
  45. var User = mongoose.model('User');
  46.  
  47. router.post('/register', function(req, res, next){
  48. if(!req.body.username || !req.body.password){
  49. return res.status(400).json({message: 'Please fill out all fields'});
  50. }
  51.  
  52. var user = new User();
  53.  
  54. user.username = req.body.username;
  55. user.setPassword(req.body.password);
  56.  
  57. user.save(function (err){
  58. if(err){ return next(err); }
  59.  
  60. return res.json({token: user.generateJWT()})
  61. });
  62. });
  63.  
  64. module.exports = router;
  65.  
  66. var express = require('express');
  67. var path = require('path');
  68. var favicon = require('serve-favicon');
  69. var logger = require('morgan');
  70. var cookieParser = require('cookie-parser');
  71. var bodyParser = require('body-parser');
  72.  
  73. //MongoDB Setup
  74. var mongoose = require('mongoose');
  75. require('./models/Users');
  76. mongoose.connect('mongodb://localhost/images');
  77.  
  78. var passport = require('passport');
  79. require('./config/passport');
  80.  
  81. var routes = require('./routes/index');
  82. var app = express();
  83. app.use(passport.initialize());
  84. .
  85. .
  86. .
  87. module.exports = app;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement