You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

29 lines
955 B

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