3.5 KiB
3.5 KiB
layout | title |
---|---|
page | WebFinger Handler |
The WebFinger (webfinger.js) Handler provides basic WebFinger (RFC7033) support, enabling servers such as those participating in the Mastodon Fediverse to discover basic information about a user.
Supported Features
- profile-page
- ActivityStream URI via rel of
self
and of typeapplication/activity+json
- Subscription URI template via rel of
http://ostatus.org/schema/1.0/subscribe
Configuration
By default, the WebFinger handler is not enabled. To enable, at a minimum set contentServers.web.handlers.webFinger.enabled
to true
in config.hjson
:
contentServers: {
web: {
handlers: {
webFinger: {
enabled: true // wow, much nest!
}
}
}
}
Configuration Keys
Key | Description |
---|---|
enabled |
Boolean. Set to true to enable WebFinger services |
profileTemplate |
String. Provide a fully qualified, or relative to static root path to a template file for fetching profile information. See Profile Template for more information. |
Profile Template
A profile template file can offer flexibility as to what information, the format, and MIME type served by the profile-page WebFinger query. Set the profileTemplate
key in your webFinger
configuration block to a path to serve as the template. The MIME type will be determined by the file's extension:
contentServers: {
web: {
handlers: {
webFinger: {
enabled: true
profileTemplate: './wf/fancy-profile.html'
}
}
}
}
ℹ️ A sample template can be found at
www/wf/profile.template.html
Example Session
# WebFinger query
> http get 'https://xibalba.l33t.codes/.well-known/webfinger?resource=acct:NuSkooler@xibalba.l33t.codes'
HTTP/1.1 200 OK
Connection: keep-alive
Content-Length: 558
Content-Type: application/jrd+json
Date: Mon, 02 Jan 2023 03:36:20 GMT
Keep-Alive: timeout=5
{
"aliases": [
"https://xibalba.l33t.codes/_enig/wf/@NuSkooler",
"https://xibalba.l33t.codes/_enig/ap/users/NuSkooler"
],
"links": [
{
"href": "https://xibalba.l33t.codes/_enig/wf/@NuSkooler",
"rel": "https://webfinger.net/rel/profile-page",
"type": "text/plain"
},
{
"href": "https://xibalba.l33t.codes/_enig/ap/users/NuSkooler",
"rel": "self",
"type": "application/activity+json"
},
{
"rel": "http://ostatus.org/schema/1.0/subscribe",
"template": "http://xibalba.l33t.codes/_enig/ap/authorize_interaction?uri={uri}"
}
],
"subject": "acct:NuSkooler@xibalba.l33t.codes"
}
# Now we can fetch the profile
> http get 'https://xibalba.l33t.codes/_enig/wf/@NuSkooler'
HTTP/1.1 200 OK
Connection: keep-alive
Content-Length: 116
Content-Type: text/plain
Date: Mon, 02 Jan 2023 03:41:19 GMT
Keep-Alive: timeout=5
User information for: NuSkooler
Real Name: Bryan Ashby
Login Count: 432
Affiliations: ENiG
Achievement Points: 405