Update FederationController, add instance actor profile to webfinger

This commit is contained in:
Daniel Supernault 2022-12-04 19:26:27 -07:00
parent 59e818cbbd
commit 6e3c8097f1
No known key found for this signature in database
GPG Key ID: 0DEF1C662C9033F7
1 changed files with 24 additions and 1 deletions

View File

@ -56,12 +56,35 @@ class FederationController extends Controller
} }
$resource = $request->input('resource'); $resource = $request->input('resource');
$domain = config('pixelfed.domain.app');
if(config('federation.activitypub.sharedInbox') &&
$resource == 'acct:' . $domain . '@' . $domain) {
$res = [
'subject' => 'acct:' . $domain . '@' . $domain,
'aliases' => [
'https://' . $domain . '/i/actor'
],
'links' => [
[
'rel' => 'http://webfinger.net/rel/profile-page',
'type' => 'text/html',
'href' => 'https://' . $domain . '/site/kb/instance-actor'
],
[
'rel' => 'self',
'type' => 'application/activity+json',
'href' => 'https://' . $domain . '/i/actor'
]
]
];
return response()->json($res, 200, [], JSON_UNESCAPED_SLASHES);
}
$hash = hash('sha256', $resource); $hash = hash('sha256', $resource);
$key = 'federation:webfinger:sha256:' . $hash; $key = 'federation:webfinger:sha256:' . $hash;
if($cached = Cache::get($key)) { if($cached = Cache::get($key)) {
return response()->json($cached, 200, [], JSON_UNESCAPED_SLASHES); return response()->json($cached, 200, [], JSON_UNESCAPED_SLASHES);
} }
$domain = config('pixelfed.domain.app');
if(strpos($resource, $domain) == false) { if(strpos($resource, $domain) == false) {
return response('', 400); return response('', 400);
} }