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