Add user validation middleware

This commit is contained in:
Adrian Obelmejias
2016-02-11 18:38:16 -05:00
parent e2df9f7452
commit caa61db6b1
+29
View File
@@ -0,0 +1,29 @@
import User from '../models/users'
import config from '../../config/config'
import { verify } from 'jsonwebtoken'
export async function ensureUser (ctx, next) {
const { token } = ctx.query
if(!token) {
ctx.throw(401)
}
let decoded = null
try {
decoded = verify(token, config.tokenSecret)
} catch(err) {
ctx.throw(401)
}
try {
const user = await User.findById(decoded.id)
if(!user) {
ctx.throw(401)
}
} catch (err) {
ctx.throw(500)
}
return next()
}