diff options
Diffstat (limited to 'models/User.js')
-rwxr-xr-x | models/User.js | 43 |
1 files changed, 0 insertions, 43 deletions
diff --git a/models/User.js b/models/User.js deleted file mode 100755 index 9391c35..0000000 --- a/models/User.js +++ /dev/null @@ -1,43 +0,0 @@ -const mongoose = require('mongoose'); -const crypto = require('crypto'); -const jwt = require('jsonwebtoken'); - -const { Schema } = mongoose; - -const UserSchema = new Schema({ - email: String, - hash: String, - salt: String, -}); - -UserSchema.methods.setPassword = function(password) { - this.salt = crypto.randomBytes(16).toString('hex'); - this.hash = crypto.pbkdf2Sync(password, this.salt, 10000, 512, 'sha512').toString('hex'); -}; - -UserSchema.methods.validatePassword = function(password) { - const hash = crypto.pbkdf2Sync(password, this.salt, 10000, 512, 'sha512').toString('hex'); - return this.hash === hash; -}; - -UserSchema.methods.generateJWT = function() { - const today = new Date(); - const expirationDate = new Date(today); - expirationDate.setDate(today.getDate() + 60); - - return jwt.sign({ - email: this.email, - id: this._id, - exp: parseInt(expirationDate.getTime() / 1000, 10), - }, 'secret'); -} - -UserSchema.methods.toAuthJSON = function() { - return { - _id: this._id, - email: this.email, - token: this.generateJWT(), - }; -}; - -mongoose.model('User', UserSchema);
\ No newline at end of file |