]>
git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/controllers/api/v1/users.js
3 const config
= require('config')
4 const express
= require('express')
5 const oAuth2
= require('../../../middlewares/oauth2')
7 const middleware
= require('../../../middlewares')
8 const cacheMiddleware
= middleware
.cache
9 const Users
= require('../../../models/users')
11 const router
= express
.Router()
13 router
.get('/client', cacheMiddleware
.cache(false), getAngularClient
)
14 router
.post('/token', cacheMiddleware
.cache(false), oAuth2
.token
, success
)
16 // ---------------------------------------------------------------------------
18 module
.exports
= router
20 // ---------------------------------------------------------------------------
22 function 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
30 if (req
.get('host') !== header_host_should_be
) return res
.type('json').status(403).end()
32 Users
.getFirstClient(function (err
, client
) {
33 if (err
) return next(err
)
34 if (!client
) return next(new Error('No client available.'))
37 client_id: client
._id
,
38 client_secret: client
.clientSecret
43 function success (req
, res
, next
) {