X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fcontrollers%2Fwell-known.ts;h=bb9acfb372bbb5b98d7c9f6b940bbc3e7faf3c86;hb=5f3505ba78bc05fc61aeca44d95f9a954934c0fc;hp=ce5883571cf66e1f7961f9f08f53c57b9e322fe5;hpb=77239b425a8e00822a53c9907415832a473c3eb6;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/controllers/well-known.ts b/server/controllers/well-known.ts index ce5883571..bb9acfb37 100644 --- a/server/controllers/well-known.ts +++ b/server/controllers/well-known.ts @@ -1,16 +1,21 @@ import cors from 'cors' import express from 'express' import { join } from 'path' +import { asyncMiddleware, handleStaticError, webfingerValidator } from '@server/middlewares' import { root } from '@shared/core-utils' import { CONFIG } from '../initializers/config' import { ROUTE_CACHE_LIFETIME, WEBSERVER } from '../initializers/constants' import { cacheRoute } from '../middlewares/cache/cache' -import { handleStaticError } from '@server/middlewares' const wellKnownRouter = express.Router() wellKnownRouter.use(cors()) +wellKnownRouter.get('/.well-known/webfinger', + asyncMiddleware(webfingerValidator), + webfingerController +) + wellKnownRouter.get('/.well-known/security.txt', cacheRoute(ROUTE_CACHE_LIFETIME.SECURITYTXT), (_, res: express.Response) => { @@ -81,3 +86,27 @@ wellKnownRouter.use('/.well-known/', export { wellKnownRouter } + +// --------------------------------------------------------------------------- + +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) +}