diff --git a/src/utils/users.js b/src/utils/users.js new file mode 100644 index 0000000..aa7242d --- /dev/null +++ b/src/utils/users.js @@ -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() +}