AutoCatBackend/models/user.js
2020-02-20 21:38:28 +03:00

36 lines
687 B
JavaScript

const crypto = require('crypto');
const uuid = require('uuid/v4');
const hash = Symbol();
const sha256 = text => crypto.createHash('sha256').update(text).digest('base64');
class User {
constructor(login = '', password = '') {
this._id = uuid();
this.login = login;
this[hash] = sha256(password);
}
static fromDB(dbUser) {
let user = new User();
user._id = dbUser._id;
user.login = dbUser.login;
user[hash] = dbUser.hash;
return user;
}
toDB() {
let user = new User();
user._id = this._id;
user.login = this.login;
user.hash = this[hash];
return user;
}
checkPassword(password) {
return this[hash] == sha256(password);
}
}
module.exports = User;