mirror of https://github.com/Chocobozzz/PeerTube
				
				
				
			
		
			
				
	
	
		
			45 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
| import cors from 'cors'
 | |
| import express from 'express'
 | |
| import { WEBSERVER } from '@server/initializers/constants'
 | |
| import { asyncMiddleware } from '../middlewares'
 | |
| import { webfingerValidator } from '../middlewares/validators'
 | |
| 
 | |
| const webfingerRouter = express.Router()
 | |
| 
 | |
| webfingerRouter.use(cors())
 | |
| 
 | |
| webfingerRouter.get('/.well-known/webfinger',
 | |
|   asyncMiddleware(webfingerValidator),
 | |
|   webfingerController
 | |
| )
 | |
| 
 | |
| // ---------------------------------------------------------------------------
 | |
| 
 | |
| export {
 | |
|   webfingerRouter
 | |
| }
 | |
| 
 | |
| // ---------------------------------------------------------------------------
 | |
| 
 | |
| function webfingerController (req: express.Request, res: express.Response) {
 | |
|   const actor = res.locals.actorUrl
 | |
| 
 | |
|   const json = {
 | |
|     subject: req.query.resource,
 | |
|     aliases: [ actor.url ],
 | |
|     links: [
 | |
|       {
 | |
|         rel: 'self',
 | |
|         type: 'application/activity+json',
 | |
|         href: actor.url
 | |
|       },
 | |
|       {
 | |
|         rel: 'http://ostatus.org/schema/1.0/subscribe',
 | |
|         template: WEBSERVER.URL + '/remote-interaction?uri={uri}'
 | |
|       }
 | |
|     ]
 | |
|   }
 | |
| 
 | |
|   return res.json(json)
 | |
| }
 |