]>
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 serverHost
= config
.get('webserver.host')
24 const serverPort
= config
.get('webserver.port')
25 let headerHostShouldBe
= serverHost
26 if (serverPort
!== 80 && serverPort
!== 443) {
27 headerHostShouldBe
+= ':' + serverPort
30 if (req
.get('host') !== headerHostShouldBe
) 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
) {