1
0
Fork 0
peertube/server/controllers/webfinger.ts

45 lines
1.1 KiB
TypeScript
Raw Normal View History

2021-08-27 12:32:44 +00:00
import cors from 'cors'
import express from 'express'
2021-01-14 13:13:23 +00:00
import { WEBSERVER } from '@server/initializers/constants'
2017-12-12 16:53:50 +00:00
import { asyncMiddleware } from '../middlewares'
import { webfingerValidator } from '../middlewares/validators'
2017-11-14 16:31:26 +00:00
const webfingerRouter = express.Router()
webfingerRouter.use(cors())
webfingerRouter.get('/.well-known/webfinger',
2017-11-27 16:30:46 +00:00
asyncMiddleware(webfingerValidator),
2017-11-14 16:31:26 +00:00
webfingerController
)
// ---------------------------------------------------------------------------
export {
webfingerRouter
}
// ---------------------------------------------------------------------------
2019-03-19 09:35:15 +00:00
function webfingerController (req: express.Request, res: express.Response) {
2020-01-28 13:45:17 +00:00
const actor = res.locals.actorUrl
2017-11-14 16:31:26 +00:00
const json = {
subject: req.query.resource,
2017-12-14 16:38:41 +00:00
aliases: [ actor.url ],
2017-11-14 16:31:26 +00:00
links: [
{
rel: 'self',
type: 'application/activity+json',
2017-12-14 16:38:41 +00:00
href: actor.url
2021-01-14 13:13:23 +00:00
},
{
rel: 'http://ostatus.org/schema/1.0/subscribe',
template: WEBSERVER.URL + '/remote-interaction?uri={uri}'
2017-11-14 16:31:26 +00:00
}
]
}
2020-01-28 13:45:17 +00:00
return res.json(json)
2017-11-14 16:31:26 +00:00
}