aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/controllers/api
diff options
context:
space:
mode:
authorChocobozzz <florian.bigard@gmail.com>2016-04-27 22:11:48 +0200
committerChocobozzz <florian.bigard@gmail.com>2016-04-27 22:11:48 +0200
commit23a5a916dba8960e77e0dcc9f9050e0df0a5f60b (patch)
tree4b13e967a5b9715ba2c6b74681f13e6ccdfa86e4 /server/controllers/api
parent2693922352c23401b658720251db2966c92614bb (diff)
downloadPeerTube-23a5a916dba8960e77e0dcc9f9050e0df0a5f60b.tar.gz
PeerTube-23a5a916dba8960e77e0dcc9f9050e0df0a5f60b.tar.zst
PeerTube-23a5a916dba8960e77e0dcc9f9050e0df0a5f60b.zip
Make angular client load dynamically the generated client id/secret
Diffstat (limited to 'server/controllers/api')
-rw-r--r--server/controllers/api/v1/users.js24
1 files changed, 24 insertions, 0 deletions
diff --git a/server/controllers/api/v1/users.js b/server/controllers/api/v1/users.js
index f45b47077..1125b9faa 100644
--- a/server/controllers/api/v1/users.js
+++ b/server/controllers/api/v1/users.js
@@ -1,13 +1,16 @@
1'use strict' 1'use strict'
2 2
3const config = require('config')
3const express = require('express') 4const express = require('express')
4const oAuth2 = require('../../../middlewares/oauth2') 5const oAuth2 = require('../../../middlewares/oauth2')
5 6
6const middleware = require('../../../middlewares') 7const middleware = require('../../../middlewares')
7const cacheMiddleware = middleware.cache 8const cacheMiddleware = middleware.cache
9const Users = require('../../../models/users')
8 10
9const router = express.Router() 11const router = express.Router()
10 12
13router.get('/client', cacheMiddleware.cache(false), getAngularClient)
11router.post('/token', cacheMiddleware.cache(false), oAuth2.token, success) 14router.post('/token', cacheMiddleware.cache(false), oAuth2.token, success)
12 15
13// --------------------------------------------------------------------------- 16// ---------------------------------------------------------------------------
@@ -16,6 +19,27 @@ module.exports = router
16 19
17// --------------------------------------------------------------------------- 20// ---------------------------------------------------------------------------
18 21
22function getAngularClient (req, res, next) {
23 const server_host = config.get('webserver.host')
24 const server_port = config.get('webserver.port')
25 let header_host_should_be = server_host
26 if (server_port !== 80 && server_port !== 443) {
27 header_host_should_be += ':' + server_port
28 }
29
30 if (req.get('host') !== header_host_should_be) return res.type('json').status(403).end()
31
32 Users.getFirstClient(function (err, client) {
33 if (err) return next(err)
34 if (!client) return next(new Error('No client available.'))
35
36 res.json({
37 client_id: client._id,
38 client_secret: client.clientSecret
39 })
40 })
41}
42
19function success (req, res, next) { 43function success (req, res, next) {
20 res.end() 44 res.end()
21} 45}