'use strict'
-var express = require('express')
-var oAuth2 = require('../../../middlewares/oauth2')
+const config = require('config')
+const express = require('express')
+const oAuth2 = require('../../../middlewares/oauth2')
const middleware = require('../../../middlewares')
const cacheMiddleware = middleware.cache
+const Users = require('../../../models/users')
const router = express.Router()
-router.post('/token', cacheMiddleware.cache(false), oAuth2.token(), success)
-router.get('/authenticate', cacheMiddleware.cache(false), oAuth2.authenticate(), success)
+router.get('/client', cacheMiddleware.cache(false), getAngularClient)
+router.post('/token', cacheMiddleware.cache(false), oAuth2.token, success)
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
+function getAngularClient (req, res, next) {
+ const serverHost = config.get('webserver.host')
+ const serverPort = config.get('webserver.port')
+ let headerHostShouldBe = serverHost
+ if (serverPort !== 80 && serverPort !== 443) {
+ headerHostShouldBe += ':' + serverPort
+ }
+
+ if (req.get('host') !== headerHostShouldBe) return res.type('json').status(403).end()
+
+ Users.getFirstClient(function (err, client) {
+ if (err) return next(err)
+ if (!client) return next(new Error('No client available.'))
+
+ res.json({
+ client_id: client._id,
+ client_secret: client.clientSecret
+ })
+ })
+}
+
function success (req, res, next) {
res.end()
}