This commit is contained in:
Adrian Obelmejias
2016-02-11 19:20:50 -05:00
parent bffdd32550
commit 59264a030e
3 changed files with 38 additions and 10 deletions
+28
View File
@@ -0,0 +1,28 @@
import Router from 'koa-router'
import passport from 'koa-passport'
import jwt from 'jsonwebtoken'
import config from '../../config/config'
const router = new Router({ prefix: '/auth' })
router.post('/', async (ctx, next) =>
passport.authenticate('local', (user) => {
if (!user) {
ctx.throw(401)
}
const token = jwt.sign({ id: user.id }, config.tokenSecret)
const response = user.toJSON()
delete response.password
delete response.salt
ctx.body = {
token,
user: response
}
})(ctx, next)
)
export default router
+6 -6
View File
@@ -10,7 +10,7 @@ router.get('/',
try {
const users = User.find({}, '-password -salt')
ctx.body = users
} catch(err) {
} catch (err) {
this.throw(err, 500)
}
}
@@ -20,11 +20,11 @@ router.get('/:id',
async (ctx) => {
try {
const user = await User.findById(ctx.params.id, '-password -salt')
if(!user) {
if (!user) {
this.throw(404)
}
ctx.body = user
} catch(err) {
} catch (err) {
this.throw(err, 500)
}
}
@@ -46,7 +46,7 @@ router.post('/',
user: response,
token
}
} catch(err) {
} catch (err) {
ctx.throw(422, err)
}
}
@@ -57,7 +57,7 @@ router.put('/:id',
try {
const user = await User.findById(ctx.params.id)
if(!user) {
if (!user) {
throw new Error({ status: 404 })
}
@@ -77,7 +77,7 @@ router.delete('/:id',
try {
const user = await User.findById(ctx.params.id)
if(!user) {
if (!user) {
throw new Error({ status: 404 })
}
+4 -4
View File
@@ -2,23 +2,23 @@ import User from '../models/users'
import config from '../../config/config'
import { verify } from 'jsonwebtoken'
export async function ensureUser (ctx, next) {
export async function ensureUser(ctx, next) {
const { token } = ctx.query
if(!token) {
if (!token) {
ctx.throw(401)
}
let decoded = null
try {
decoded = verify(token, config.tokenSecret)
} catch(err) {
} catch (err) {
ctx.throw(401)
}
try {
const user = await User.findById(decoded.id)
if(!user) {
if (!user) {
ctx.throw(401)
}
} catch (err) {