webfinger / AP user
This commit is contained in:
27
server/federation/webfinger.js
Normal file
27
server/federation/webfinger.js
Normal file
@@ -0,0 +1,27 @@
|
||||
const express = require('express')
|
||||
const router = express.Router()
|
||||
const { user: User } = require('../api/models')
|
||||
const config = require('config')
|
||||
|
||||
router.get('/', async (req, res) => {
|
||||
const resource = req.query.resource
|
||||
if (!resource || !resource.includes('acct:')) {
|
||||
return res.status(400).send('Bad request. Please make sure "acct:USER@DOMAIN" is what you are sending as the "resource" query parameter.')
|
||||
}
|
||||
const name = resource.replace('acct:', '')
|
||||
const domain = 'localhoasf'
|
||||
const user = await User.findOne({where: { username: name } })
|
||||
if (!user) return res.status(404).send(`No record found for ${name}`)
|
||||
const ret = {
|
||||
subject: `acct:${name}:${domain}`,
|
||||
links: [
|
||||
{
|
||||
rel: 'self',
|
||||
type: 'application/activity+json',
|
||||
href: `${config.baseurl}/federation/u/${name}`
|
||||
}
|
||||
]
|
||||
}
|
||||
res.json(ret)
|
||||
})
|
||||
module.exports = router
|
||||
Reference in New Issue
Block a user