From dd895aa87ddb83de2bd8841f9129618bd995019e Mon Sep 17 00:00:00 2001 From: Nicolas Brohee Date: Tue, 8 Nov 2016 15:19:34 +0100 Subject: [PATCH] Split auth logic and routing --- server/api/auth/auth.controller.js | 19 +++++++++++++++++++ server/api/auth/index.js | 27 ++++++++++----------------- server/api/routes/index.js | 2 +- 3 files changed, 30 insertions(+), 18 deletions(-) create mode 100644 server/api/auth/auth.controller.js diff --git a/server/api/auth/auth.controller.js b/server/api/auth/auth.controller.js new file mode 100644 index 0000000..5061cf5 --- /dev/null +++ b/server/api/auth/auth.controller.js @@ -0,0 +1,19 @@ +'use strict' + +const passport = require('passport') +const auth = require('./auth.service') + +class AuthController { + getToken(req, res, next) { + passport.authenticate('local', function (err, user, info) { + var error = err || info + if (error) return res.status(401).json(error) + if (!user) return res.status(404).json({ message: 'Something went wrong, please try again.' }) + + var token = auth.signToken(user._id, user.role) + res.json({ token: token }) + })(req, res, next) + } +} + +module.exports = AuthController diff --git a/server/api/auth/index.js b/server/api/auth/index.js index cb589bc..7dc1e37 100644 --- a/server/api/auth/index.js +++ b/server/api/auth/index.js @@ -1,11 +1,11 @@ 'use strict' -var express = require('express') -var passport = require('passport') -var auth = require('./auth.service') -var User = require('../user/user.model') +const express = require('express') +const passport = require('passport') +const router = express.Router() -var router = express.Router() +const User = require('../user/user.model') +const Controller = require('./auth.controller') // Passport Configuration passport.serializeUser(function(user, done) { @@ -18,15 +18,8 @@ passport.deserializeUser(function(user, done) { require('./passport-strategy').setup(User) -router.post('/', function(req, res, next) { - passport.authenticate('local', function(err, user, info) { - var error = err || info - if (error) return res.status(401).json(error) - if (!user) return res.status(404).json({message: 'Something went wrong, please try again.'}) - - var token = auth.signToken(user._id, user.role) - res.json({token: token}) - })(req, res, next) -}) - -module.exports = router +module.exports = (options) => { + const authController = new Controller(options) + router.post('/', authController.getToken) + return router +} diff --git a/server/api/routes/index.js b/server/api/routes/index.js index 2de4399..e3157a5 100644 --- a/server/api/routes/index.js +++ b/server/api/routes/index.js @@ -9,5 +9,5 @@ exports.configure = (app, options) => { app.use('/api/application', application(options)) app.use('/api/pepite', pepite(options)) app.use('/api/user', user(options)) - app.use('/api/auth', auth) + app.use('/api/auth', auth(options)) }