var jwt = require('jsonwebtoken');
const authentic = (deps) => {
return {
authPass :(email, password)=>{
const {conx} = deps
return new Promise((resolve, reject)=>{
conx.query('SELECT id, email FROM user WHERE email = ? AND password = ?' , [ email, password], (err , result)=>{
if(err){
reject(err)
}
token = passToken(result) // 2) RECEBO PARAMETRO PARA GERAR TOKEN
resolve({result: result , token : token})
})
})
}
}
}
var token = {}; // VAR GLOBAL TOKEN
function passToken(result){ // 1) FUNÇÃO QUE GERA O TOKEN
const {id , email} = result[0];
var token = jwt.sign({id , email} , 'teste' , {expiresIn: 60 * 60});
return token;
}
passToken(result) // 3) A FUNÇÃO EXIGE QUE PASSE PARAMETRO ' result 'MAS O MESMO NÃO É 'DEFINIDO' COMO POSSO ESTRAIR O TOKEN DESSA FUNÇÃO SEM PRECISAR CHAMA-LA.
module.exports = authentic;
module.exports.token = token;