Select Git revision
AuthenticationController.js
-
V S Tharunika authoredV S Tharunika authored
AuthenticationController.js 1.58 KiB
const {User}= require('../models')
const jwt = require('jsonwebtoken')
const config = require('../config/config')
function jwtSignUser (user) {
const ONE_WEEK = 60 * 60 * 24 *7
return jwt.sign(user, config.authentication.jwtSecret, {
expiresIn: ONE_WEEK
})
}
module.exports={
async register(req, res){
try{
const user= await User.create(req.body)
const userJson = user.toJSON()
res.send({
user: userJSON,
token: jwtSignUser(userJson)
})
} catch (err){
res.status(400).send({
error: 'This email account is already in use.'
})
}
},
async login(req, res) {
try{
const {email, password} = req.body
const user= await User.findOne({
where: {
email: email
}
})
if (!user) {
return res.status(403).send({
error: 'The login information was incorrect'
})
}
const isPasswordValid = await user.comparePassword(password)
if(!isPasswordValid) {
return res.status(403).send({
error: 'The login information was incorrect'
})
}
const userJson = user.toJSON()
res.send({
user: userJSON,
token: jwtSignUser(userJson)
})
}catch (err){
res.status(500).send({
error: 'An error has occured trying to log in'
})
}
}
}