brutaljs
Version:
BrutalJS ========
46 lines (41 loc) • 1.11 kB
text/coffeescript
jwt = require('jwt-simple')
CONFIG = process.env
User = require('../../models/user')
# User.create({email: 'dssymssy@gmail.com', password: '$2a$10$hHFX5/2vq/Vl/VvaoEO8CeMYS01SaFIywq2PqU1X0/rsxridlJf/O'})
module.exports = (req, res, next) ->
token = req.get('X-Auth')
if token?
decoded = null
try
decoded = jwt.decode(token, CONFIG.JWT_SECRET)
catch err
console.log(err)
if !decoded?
res.send(401)
else if decoded.exp <= Date.now()
res
.status(401)
.send('Access token has expired')
else
if req.user?
if req.user._id is decoded.user._id then next()
else
res
.status(401)
.send('Logged in as different user.')
else
User.findById(decoded.user, (err, user) ->
if err?
res
.status(400)
.send('Cant find user')
else if !user?
res
.status(401)
.send('Cant find user')
else
req.user = user.toJSON()
next()
)
else
res.send(401)