29 lines
955 B
JavaScript
29 lines
955 B
JavaScript
mongo = require("./mongoHelp")
|
|
config = require("./config.js")
|
|
crypto = require('crypto')
|
|
jwt = require('jsonwebtoken')
|
|
|
|
accessTokenSecret = config.secret;
|
|
|
|
function login(username, password) {
|
|
return new Promise((resolve, reject) => {
|
|
mongo.get(config.database, "users", {"username":username}).then(userArr => {
|
|
hashedStr = crypto.createHmac('sha256', config.secret).update(password).digest('hex')
|
|
if (userArr.length != 1){
|
|
//No user is registered to that address
|
|
reject("Error")
|
|
} else if (hashedStr != userArr[0].password){
|
|
// Password Doesn't Match
|
|
reject("Error")
|
|
} else {
|
|
const accessToken = jwt.sign({
|
|
username: userArr[0].username,
|
|
}, config.jwtSecret, { expiresIn: '7d' })
|
|
resolve(accessToken)
|
|
}
|
|
})
|
|
})
|
|
|
|
}
|
|
|
|
module.exports = login |