]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - server/middlewares/oauth.ts
Add redis cache to feed route
[github/Chocobozzz/PeerTube.git] / server / middlewares / oauth.ts
CommitLineData
69818c93 1import * as express from 'express'
4d4e5cd4 2import * as OAuthServer from 'express-oauth-server'
93e4a311 3import 'express-validator'
e02643f3 4import { OAUTH_LIFETIME } from '../initializers'
0c1cbbfe
C
5
6const oAuthServer = new OAuthServer({
93e4a311 7 useErrorHandler: true,
e02643f3
C
8 accessTokenLifetime: OAUTH_LIFETIME.ACCESS_TOKEN,
9 refreshTokenLifetime: OAUTH_LIFETIME.REFRESH_TOKEN,
69b0a27c 10 model: require('../lib/oauth-model')
9457bf88
C
11})
12
69818c93 13function authenticate (req: express.Request, res: express.Response, next: express.NextFunction) {
075f16ca 14 oAuthServer.authenticate()(req, res, err => {
0c1cbbfe 15 if (err) {
93e4a311
C
16 return res.status(err.status)
17 .json({
5960f923 18 error: 'Token is invalid.',
93e4a311
C
19 code: err.name
20 })
21 .end()
eec63bbc 22 }
0c1cbbfe
C
23
24 return next()
25 })
26}
27
69818c93 28function token (req: express.Request, res: express.Response, next: express.NextFunction) {
5960f923
C
29 return oAuthServer.token()(req, res, err => {
30 if (err) {
31 return res.status(err.status)
32 .json({
33 error: 'Authentication failed.',
34 code: err.name
35 })
36 .end()
37 }
38
39 return next()
40 })
0c1cbbfe
C
41}
42
9457bf88
C
43// ---------------------------------------------------------------------------
44
65fcc311
C
45export {
46 authenticate,
47 token
48}