mirror of https://github.com/Chocobozzz/PeerTube
				
				
				
			
		
			
				
	
	
		
			38 lines
		
	
	
		
			1018 B
		
	
	
	
		
			TypeScript
		
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1018 B
		
	
	
	
		
			TypeScript
		
	
	
| import { handleLogin, handleTokenRevocation } from '@server/lib/auth'
 | |
| import * as RateLimit from 'express-rate-limit'
 | |
| import { CONFIG } from '@server/initializers/config'
 | |
| import * as express from 'express'
 | |
| import { Hooks } from '@server/lib/plugins/hooks'
 | |
| import { asyncMiddleware, authenticate } from '@server/middlewares'
 | |
| 
 | |
| const tokensRouter = express.Router()
 | |
| 
 | |
| const loginRateLimiter = RateLimit({
 | |
|   windowMs: CONFIG.RATES_LIMIT.LOGIN.WINDOW_MS,
 | |
|   max: CONFIG.RATES_LIMIT.LOGIN.MAX
 | |
| })
 | |
| 
 | |
| tokensRouter.post('/token',
 | |
|   loginRateLimiter,
 | |
|   handleLogin,
 | |
|   tokenSuccess
 | |
| )
 | |
| 
 | |
| tokensRouter.post('/revoke-token',
 | |
|   authenticate,
 | |
|   asyncMiddleware(handleTokenRevocation)
 | |
| )
 | |
| 
 | |
| // ---------------------------------------------------------------------------
 | |
| 
 | |
| export {
 | |
|   tokensRouter
 | |
| }
 | |
| // ---------------------------------------------------------------------------
 | |
| 
 | |
| function tokenSuccess (req: express.Request) {
 | |
|   const username = req.body.username
 | |
| 
 | |
|   Hooks.runAction('action:api.user.oauth2-got-token', { username, ip: req.ip })
 | |
| }
 |