webfinger.ts 894 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. import * as cors from 'cors'
  2. import * as express from 'express'
  3. import { asyncMiddleware } from '../middlewares'
  4. import { webfingerValidator } from '../middlewares/validators'
  5. const webfingerRouter = express.Router()
  6. webfingerRouter.use(cors())
  7. webfingerRouter.get('/.well-known/webfinger',
  8. asyncMiddleware(webfingerValidator),
  9. webfingerController
  10. )
  11. // ---------------------------------------------------------------------------
  12. export {
  13. webfingerRouter
  14. }
  15. // ---------------------------------------------------------------------------
  16. function webfingerController (req: express.Request, res: express.Response) {
  17. const actor = res.locals.actorUrl
  18. const json = {
  19. subject: req.query.resource,
  20. aliases: [ actor.url ],
  21. links: [
  22. {
  23. rel: 'self',
  24. type: 'application/activity+json',
  25. href: actor.url
  26. }
  27. ]
  28. }
  29. return res.json(json)
  30. }