-
Notifications
You must be signed in to change notification settings - Fork 12
/
Copy pathuser.js
45 lines (39 loc) · 1.09 KB
/
user.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
var db = require('../db');
var jwt = require('jsonwebtoken');
var bcrypt = require('bcryptjs');
getAllUser = () => new Promise((resolve, reject) => {
db.query('SELECT * from user', function (error, results, fields) {
if (error){
reject();
}else{
resolve(results[0]);
}
});
});
saveUser = (userinfo) => new Promise((resolve,reject)=>{
var salt = bcrypt.genSaltSync(10);
var hash = bcrypt.hashSync(userinfo.password, salt);
userinfo.password = hash;
userinfo.token = jwt.sign({Owner : userinfo.Owner},'secretkey');
db.query('INSERT INTO user SET ?',userinfo,function(error,results,fields){
if(error){
reject();
}else{
resolve(userinfo);
}
})
});
getUserByToken = (token) => new Promise((resolve, reject) => {
var decoded ;
try{
decoded = jwt.verify(token,'secretkey');
resolve(decoded);
}catch(e){
reject();
}
});
// The code below export the above functios so it can be used in other files.
module.exports = {
saveUser,
getUserByToken
};