Registered Editors Only

You need to set @fingerprints in your config file. Here's an example:

    our (@fingerprints);
    @fingerprints = qw(
      sha256$fce75346ccbcf0da647e887271c3d3666ef8c7b181f2a3b22e976ddc8fa38401
      sha256$54c0b95dd56aebac1432a3665107d3aec0d4e28fef905020ed6762db49e84ee1);

The way to do it is to request the certificate from your friends (not they key!) and run the following:

    openssl x509 -in client-cert.pem -noout -sha256 -fingerprint \
    | sed -e 's/://g' -e 's/SHA256 Fingerprint=/sha256$/' \
    | tr [:upper:] [:lower:]

This should give you your friend's fingerprint in the correct format to add to the list above.

Make sure your main menu has a link to the login page:

    => /login Login

This code works by intercepting all titan: links. Specifically:

If you allow simple comments using comments.pl, then those are not affected, since these comments use Gemini instead of Titan. Thus, people can still leave comments.
If you allow editing via the web using web-edit.pl, then those are not affected, since these edits use HTTP instead of Titan. Thus, people can still edit pages.