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