]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/middlewares/oauth.js
3d7429f1d44cea7cc36d315afa3b6214db399b7d
[github/Chocobozzz/PeerTube.git] / server / middlewares / oauth.js
1 'use strict'
2
3 const OAuthServer = require('express-oauth-server')
4
5 const logger = require('../helpers/logger')
6
7 const oAuthServer = new OAuthServer({
8 model: require('../lib/oauth-model')
9 })
10
11 const oAuth = {
12 authenticate: authenticate,
13 token: token
14 }
15
16 function authenticate (req, res, next) {
17 oAuthServer.authenticate()(req, res, function (err) {
18 if (err) {
19 logger.error('Cannot authenticate.', { error: err })
20 return res.sendStatus(500)
21 }
22
23 if (res.statusCode === 401 || res.statusCode === 400) return res.end()
24
25 return next()
26 })
27 }
28
29 function token (req, res, next) {
30 return oAuthServer.token()(req, res, next)
31 }
32
33 // ---------------------------------------------------------------------------
34
35 module.exports = oAuth