40 lines
768 B
JavaScript
40 lines
768 B
JavaScript
|
import Pages from './Pages';
|
||
|
import Users from '../models/Users';
|
||
|
|
||
|
/**
|
||
|
* Classe permettant de gérer les utilisateurs
|
||
|
*/
|
||
|
class Auth extends Pages {
|
||
|
/**
|
||
|
* Méthode permettant de créer un nouvel utilisateur
|
||
|
* @param {Req} req
|
||
|
* @param {Function} callback
|
||
|
*
|
||
|
* @return {Function}
|
||
|
*/
|
||
|
async register(req) {
|
||
|
const {username, email, password} = req.body;
|
||
|
const user = new Users({
|
||
|
username,
|
||
|
email,
|
||
|
salt: password,
|
||
|
});
|
||
|
|
||
|
// user.hash = user.setPassword(password);
|
||
|
|
||
|
await user.save();
|
||
|
|
||
|
await new Promise((resolve, reject) => {
|
||
|
req.login(user, (errLogin) => {
|
||
|
if (errLogin) {
|
||
|
return reject(errLogin);
|
||
|
}
|
||
|
|
||
|
return resolve(null);
|
||
|
});
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
|
||
|
module.exports = Auth;
|