]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/middlewares/oauth.ts
Add ability to choose what policy we have for NSFW videos
[github/Chocobozzz/PeerTube.git] / server / middlewares / oauth.ts
index 41a3fb71894133d759f867a288bc930ea0e62362..a6f28dd5b56a58050cc12d5f0b87aa2ad9e1e640 100644 (file)
@@ -2,6 +2,7 @@ import * as express from 'express'
 import * as OAuthServer from 'express-oauth-server'
 import 'express-validator'
 import { OAUTH_LIFETIME } from '../initializers'
+import { logger } from '../helpers/logger'
 
 const oAuthServer = new OAuthServer({
   useErrorHandler: true,
@@ -13,6 +14,8 @@ const oAuthServer = new OAuthServer({
 function authenticate (req: express.Request, res: express.Response, next: express.NextFunction) {
   oAuthServer.authenticate()(req, res, err => {
     if (err) {
+      logger.warn('Cannot authenticate.', { err })
+
       return res.status(err.status)
         .json({
           error: 'Token is invalid.',
@@ -25,6 +28,12 @@ function authenticate (req: express.Request, res: express.Response, next: expres
   })
 }
 
+function optionalAuthenticate (req: express.Request, res: express.Response, next: express.NextFunction) {
+  if (req.header('authorization')) return authenticate(req, res, next)
+
+  return next()
+}
+
 function token (req: express.Request, res: express.Response, next: express.NextFunction) {
   return oAuthServer.token()(req, res, err => {
     if (err) {
@@ -44,5 +53,6 @@ function token (req: express.Request, res: express.Response, next: express.NextF
 
 export {
   authenticate,
+  optionalAuthenticate,
   token
 }