[refactor] remove username field and let instance_name be the only AP Actor

This commit is contained in:
les
2019-12-04 00:50:15 +01:00
parent e84d7f3bd1
commit 3116e776a0
23 changed files with 159 additions and 201 deletions

View File

@@ -15,23 +15,20 @@ router.use((req, res, next) => {
res.status(404).send('Federation disabled')
})
router.get('/webfinger', async (req, res) => {
router.get('/webfinger', (req, res) => {
if (!req.query || !req.query.resource || !req.query.resource.includes('acct:')) {
debug('Bad webfinger request => %s', req.query && req.query.resource)
return res.status(400).send('Bad request. Please make sure "acct:USER@DOMAIN" is what you are sending as the "resource" query parameter.')
}
const resource = req.query.resource
const domain = url.parse(req.settings.baseurl).host
const domain = (new url.URL(req.settings.baseurl)).host
const [, name, req_domain] = resource.match(/acct:(.*)@(.*)/)
if (domain !== req_domain) {
debug('Bad webfinger request, requested domain "%s" instead of "%s"', req_domain, domain)
return res.status(400).send('Bad request. Please make sure "acct:USER@DOMAIN" is what you are sending as the "resource" query parameter.')
}
const user = await User.findOne({ where: { username: name } })
if (!user) {
if (name !== req.settings.instance_name) {
debug('User not found: %s', name)
return res.status(404).send(`No record found for ${name}`)
}