enigma-bbs/docs/_docs/servers/contentservers/webfinger-handler.md

3.5 KiB
Raw Blame History

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 type application/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