commit 59024d4b5d6b7272edc49e0f7636df8213b2af17
parent b0857e7b9d1c998178cbea2df3bd232b8039518d
Author: Martin Schanzenbach <schanzen@gnunet.org>
Date: Tue, 23 Dec 2025 22:38:36 +0900
cleanup naming of mailbox; update example config; UX
Diffstat:
6 files changed, 40 insertions(+), 25 deletions(-)
diff --git a/cmd/taldir-server/testdata/web/templates/lookup_result.html b/cmd/taldir-server/testdata/web/templates/lookup_result.html
@@ -51,7 +51,7 @@
<div class="col-lg-8 offset-lg-2 text-center">
<div class="input-group mb-3">
<!--<span class="input-group-text" id="inputGroup-sizing-default">{{.address}}: </span>-->
- <input id="uriInput" name="target_uri" type="text" class="form-control" placeholder="{{ call .tr "paymentSystemAddressExample" }}" aria-label="Default" aria-describedby="inputGroup-sizing-default">
+ <input id="uriInput" name="target_uri" type="text" class="form-control" placeholder="{{ call .tr "talerMailboxAddressExample" }}" aria-label="Default" aria-describedby="inputGroup-sizing-default">
<input class="input-group-text btn btn-outline-primary" type="submit" value="{{ call .tr "linkIt" }}">
</div>
</div>
diff --git a/locales/de-DE/taldir.yml b/locales/de-DE/taldir.yml
@@ -1,17 +1,19 @@
phone: "Telefonnummer"
email: "E-Mail"
+mastodon: "Mastodon"
+mastodonHandle: "Mastodon handle"
oidctest: "OIDC Test"
error: "Es ist ein Fehler aufgetreten!"
title: "Alias Registration und Suche"
selectAliasToLookup: "Bitte wähle einen Alias-Typ den Du suchen möchtest:"
-howtoRegisterOrModify: "Um ein neues Alias mit einer Bezahlsystemadresse zu verbinden oder die bereits verbundene Bezahlsystemaddresse zu ändern, musst Du es erst über die Suche oben suchen."
+howtoRegisterOrModify: "Um ein neues Alias mit einer Taler Mailbox-Adresse zu verbinden oder die bereits verbundene Mailbox zu ändern, musst Du es erst über die Suche oben suchen."
registerOrModify: "Registrieren oder Anpassen"
validationInitiated: "Alias-Validierung gestartet"
pleaseCompleteValidation: "Bitte vervollständige die Alias-Validierung wie in der versendeten Nachricht beschrieben damit wir sicher sein können dass Du es wirklich bist!"
-notYetLinked: "`%s` ist noch nicht mit einer Bezahlsystemadresse verlinkt. Du kannst eine IBAN oder Taler wallet Adresse verlinken:"
-isLinked: "`%s` ist bereits mit einer Bezahlsystemadresse verlinkt."
-paymentSystemAddress: "Bezahlsystemadresse"
-paymentSystemAddressExample: "z.B. payto://iban/DE07123412341234123412"
+notYetLinked: "`%s` ist noch nicht mit einer Taler Mailbox-Adresse verlinkt. Du kannst eine IBAN oder Taler wallet Adresse verlinken:"
+isLinked: "`%s` ist bereits mit einer Taler Mailbox-Adresse verlinkt."
+talerMailboxAddress: "Taler Mailbox-Adresse"
+talerMailboxAddressExample: "z.B. https://mailbox.gnunet.org/MCVJNGE0HE..."
linkIt: "Verlinken"
deleteIt: "Löschen"
aliasInvalid: "Alias '%s´ ist ungültig."
@@ -21,14 +23,14 @@ confirmReg: "Bestätige, dass \"<i>%s</i>\" mit \"<i>%s</i>\" assoziiert werden
confirmDelete: "Bestätige, dass das Alias \"<i>%s</i>\" gelöscht werden soll."
lookup: "Suchen"
lookupEmail: "E-Mail-Adresse nachschlagen"
-lookupEmailDescription: "Gib eine E-Mail-Adresse (z.B. `jdoe@example.com`) ein um die dazugehörige Bezahlsystemadresse nachzuschlagen. Wenn diese noch nicht verlinkt ist, und das Alias Dir gehört, hast du dann die Chance dieses mit einer Bazahlsystemadresse zu verlinken oder zu modifizieren."
+lookupEmailDescription: "Gib eine E-Mail-Adresse (z.B. `jdoe@example.com`) ein um die dazugehörige Taler Mailbox-Adresse nachzuschlagen. Wenn diese noch nicht verlinkt ist, und das Alias Dir gehört, hast du dann die Chance dieses mit einer Bazahlsystemadresse zu verlinken oder zu modifizieren."
available: "Verfügbar"
lookupPhoneNr: "Telefonnummer nachschlagen"
-lookupPhoneDescription: "Gib eine Telefonnummer ohne das `+` und ohne Leerzeichen ein (z.B. `49123456789`) um die dazugehörige Bezahlsystemadresse nachzuschlagen. Wenn diese noch nicht verlinkt ist, und das Alias unter Dir gehört, hast du dann die Chance dieses mit einer Bazahlsystemadresse zu verlinken."
+lookupPhoneDescription: "Gib eine Telefonnummer ohne das `+` und ohne Leerzeichen ein (z.B. `49123456789`) um die dazugehörige Taler Mailbox-Adresse nachzuschlagen. Wenn diese noch nicht verlinkt ist, und das Alias unter Dir gehört, hast du dann die Chance dieses mit einer Bazahlsystemadresse zu verlinken."
lookupResultFound: "Suchergebnis"
about: "Über TalDir"
productDisclaimerShort: 'Dieser Dienst ist eine Funktionsdemonstration. <a href="/about">Mehr</a>'
-productDisclaimer: 'Dies ist eine Demo-Instanz des <b>Tal</b>er <b>Dir</b>ectory (TalDir) Dienstes. Der Dienst implementiert die <a href="https://docs.taler.net/core/api-taldir.html">Taler TalDir API-Spezifikation</a>. TalDir erlaubt es Dir dein Identitäts-Alias (wie z.B. Email-Adresse oder Telefonnummer) mit einer Bezahlsystemadresse (z.B. einer <a href="https://en.wikipedia.org/wiki/International_Bank_Account_Number">IBAN</a> oder <a href="https://www.rfc-editor.org/rfc/rfc8905">Taler Wallet-Adresse</a>) zu verlinken. TalDir bzw. die TalDIR API können in einer digitalen Geldbörse integriert werden um sogenannte Peer-to-Peer-Transaktionen zu unterstützen. Diese Weboberfläche dient lediglich als Demonstration der Funktionalitäten der API.<p><b>ACHTUNG:</b> Dieser Dienst ist eine Demo. Es ist kein fertiges Produkt. Die Entwicklung dieses Dienstes dauert an and wird von <a href="https://nlnet.nl/project/TALER-LookupService/">NLnet and NGI TALER</a> gefördert.</p>'
+productDisclaimer: 'Dies ist eine Demo-Instanz des <b>Tal</b>er <b>Dir</b>ectory (TalDir) Dienstes. Der Dienst implementiert die <a href="https://docs.taler.net/core/api-taldir.html">Taler TalDir API-Spezifikation</a>. TalDir erlaubt es Dir dein Identitäts-Alias (wie z.B. Email-Adresse oder Telefonnummer) mit einer Taler Mailbox-Adresse (z.B. https://mailbox.gnunet.org/MCVJNGE0HE...) zu verlinken. TalDir bzw. die TalDIR API können in einer digitalen Geldbörse integriert werden um sogenannte Peer-to-Peer-Transaktionen zu unterstützen. Diese Weboberfläche dient lediglich als Demonstration der Funktionalitäten der API.<p><b>ACHTUNG:</b> Dieser Dienst ist eine Demo. Es ist kein fertiges Produkt. Die Entwicklung dieses Dienstes dauert an and wird von <a href="https://nlnet.nl/project/TALER-LookupService/">NLnet and NGI TALER</a> gefördert.</p>'
taldirRegTopic: "Taldir Alias Validierung"
taldirRegMessage: "Hi,\\n\\nWillkommen bei TalDir. Please folge diesem Link um dein Alias zu bestätigen und deine Anfrage abzuschliessen: %s\\n\\nViele Grüße,\\nTalDir"
importContactLink: "Nutze diesen Link um den Kontakt in deine Taler wallet aufzunehmen:"
diff --git a/locales/en-US/taldir.yml b/locales/en-US/taldir.yml
@@ -1,17 +1,19 @@
phone: "Phone"
email: "E-mail"
+mastodon: "Mastodon"
+mastodonHandle: "Mastodon handle"
oidctest: "OIDC Test"
error: "An error occurred!"
title: "Alias Registration and Lookup"
selectAliasToLookup: "Select a type of alias that you want to look up:"
-howtoRegisterOrModify: "In order to register an alias with a Payment System Address or modify an already registered Payment System Address, first look up the respective alias."
+howtoRegisterOrModify: "In order to register an alias with a Taler Mailbox Address or modify an already registered Taler Mailbox Address, first look up the respective alias."
registerOrModify: "Register or Modify"
validationInitiated: "Alias validation initiated"
pleaseCompleteValidation: "Please complete your alias validation according to the instructions sent to you so that we can be sure it is really you!"
-notYetLinked: "`%s' is not yet linked with any Payment System Address. You may use an IBAN or a Taler wallet address:"
-isLinked: "`%s' is linked with a Payment System Address."
-paymentSystemAddress: "Payment System Address"
-paymentSystemAddressExample: "i.e. payto://iban/DE07123412341234123412"
+notYetLinked: "`%s' is not yet linked with any Taler Mailbox Address. You may use an IBAN or a Taler wallet address:"
+isLinked: "`%s' is linked with a Taler Mailbox Address."
+talerMailboxAddress: "Taler Mailbox Address"
+talerMailboxAddressExample: "e.g. https://mailbox.gnunet.org/MCVJNGE..."
linkIt: "Link it"
deleteIt: "Unlink it"
aliasInvalid: "Alias '%s´ is invalid."
@@ -21,14 +23,14 @@ confirmReg: "Click to confirm that you want to associate \"<i>%s</i>\" with \"<i
confirmDelete: "Click to confirm that you want to delete the alias \"<i>%s</i>\"."
lookup: "Look up"
lookupEmail: "Look up Email address"
-lookupEmailDescription: "Enter an email address (e.g. `jdoe@example.com`) to look up the associated Payment System Address. If it is still unlinked and under your control you will be given the option to link it with a Payment System Address after lookup."
+lookupEmailDescription: "Enter an email address (e.g. `jdoe@example.com`) to look up the associated Taler Mailbox Address. If it is still unlinked and under your control you will be given the option to link it with a Taler Mailbox Address after lookup."
available: "Available"
lookupPhoneNr: "Look up phone number"
-lookupPhoneDescription: "Enter a phone number without the `+` and no spaces (e.g. `49123456789`) to look up the associated Payment System Address. If it is still unlinked and under your control you will be given the option to link it with a new Payment System Address or modify an existing address after lookup."
+lookupPhoneDescription: "Enter a phone number without the `+` and no spaces (e.g. `49123456789`) to look up the associated Taler Mailbox Address. If it is still unlinked and under your control you will be given the option to link it with a new Taler Mailbox Address or modify an existing address after lookup."
lookupResultFound: "Lookup result"
about: "About TalDir"
productDisclaimerShort: 'This service is for demonstration purposes only. <a href="/about">Learn more</a>'
-productDisclaimer: 'This is a demo instance of the <b>Tal</b>er <b>Dir</b>ectory (TalDir) service. It implements the <a href="https://docs.taler.net/core/api-taldir.html">Taler TalDir API specification</a>. TalDir allows you to link your identity aliases (such as email addresses or phone numbers) with a payment system address (e.g. an <a href="https://en.wikipedia.org/wiki/International_Bank_Account_Number">IBAN</a> or a <a href="https://www.rfc-editor.org/rfc/rfc8905">Taler wallet address</a>). Note that in practice, we expect that this service and its API would be used through a digital payment wallet to facilitate peer-to-peer transactions. The lookup and registration functionality on this web page is for demonstration purposes only. <p><b>IMPORTANT:</b> This is a demo service. It is not production-ready. The development of this service is ongoing and is funded by <a href="https://nlnet.nl/project/TALER-LookupService/">NLnet and NGI TALER</a>.</p>'
+productDisclaimer: 'This is a demo instance of the <b>Tal</b>er <b>Dir</b>ectory (TalDir) service. It implements the <a href="https://docs.taler.net/core/api-taldir.html">Taler TalDir API specification</a>. TalDir allows you to link your identity aliases (such as email addresses or phone numbers) with a Taler Mailbox (e.g. https://mailbox.gnunet.org/MCVJNGE...). Note that in practice, we expect that this service and its API would be used through a digital payment wallet to facilitate peer-to-peer transactions. The lookup and registration functionality on this web page is for demonstration purposes only. <p><b>IMPORTANT:</b> This is a demo service. It is not production-ready. The development of this service is ongoing and is funded by <a href="https://nlnet.nl/project/TALER-LookupService/">NLnet and NGI TALER</a>.</p>'
taldirRegTopic: "Taldir Alias Validation"
taldirRegMessage: "Hi,\\n\\nwelcome to TalDir. Please follow this link validate your alias and complete your request: %s\\n\\nBest,\\nTalDir"
importContactLink: "Use this link to import the contact into your Taler wallet:"
diff --git a/taldir.conf.example b/taldir.conf.example
@@ -35,14 +35,26 @@ command = test
[taldir-validator-oidctest]
type = oidc
-enabled = true
-jwks_endpoint=http://127.0.0.1:9400/jwks
+enabled = false
authorization_endpoint=http://127.0.0.1:9400/oauth2/authorize
token_endpoint=http://127.0.0.1:9400/oauth2/token
+userinfo_endpoint=http://127.0.0.1:9400/userinfo
client_id=test
client_secret=testsecret
scope=openid email
valid_alias_regex='^\S+@\S+\.\S+$'
-jwt_algos=RS256,ES256
+alias_claim=sub
+
+[taldir-validator-mastodon]
+type = oidc
+enabled = true
+authorization_endpoint=https://mastodon.social/oauth/authorize
+token_endpoint=https://mastodon.social/oauth/token
+userinfo_endpoint=https://mastodon.social/oauth/userinfo
+client_id=test
+client_secret=testsecret
+scope=profile
+valid_alias_regex='^\S+$'
+alias_claim="preferred_username"
diff --git a/web/templates/landing_mastodon.html b/web/templates/landing_mastodon.html
@@ -41,12 +41,11 @@
<div class="row">
<div class="col-lg-6 offset-lg-3 text-center">
<div class="input-group mb-3">
+ <span class="input-group-text" id="inputGroup-sizing-default">@</span>
<div class="form-floating">
- <input type="text" name="alias" id="floatingInput" class="form-control" placeholder="@jdoe" aria-label="Default" aria-describedby="inputGroup-sizing-default" data-sb-validations="required,email">
- <label for="floatingInput">{{ call .tr "email" }}</label>
+ <input type="text" name="alias" id="floatingInput" class="form-control" placeholder="jdoe" aria-label="Default" aria-describedby="inputGroup-sizing-default" data-sb-validations="required">
+ <label for="floatingInput">{{ call .tr "mastodonHandle" }}</label>
</div>
- <div class="invalid-feedback text-white" data-sb-feedback="emailAddressBelow:required">Email Address is required.</div>
- <div class="invalid-feedback text-white" data-sb-feedback="emailAddressBelow:email">Email Address is not valid.</div>
<input class="input-group-text btn btn-outline-primary" type="submit" value="{{ call .tr "lookup" }}">
</div>
</div>
diff --git a/web/templates/lookup_result.html b/web/templates/lookup_result.html
@@ -51,7 +51,7 @@
<div class="row">
<div class="col-lg-8 offset-lg-2 text-center">
<div id="address-input-group" class="input-group mb-3">
- <input id="uriInput" name="target_uri" type="text" class="form-control" placeholder="{{ call .tr "paymentSystemAddressExample" }}" aria-label="Default" aria-describedby="inputGroup-sizing-default">
+ <input id="uriInput" name="target_uri" type="text" class="form-control" placeholder="{{ call .tr "talerMailboxAddressExample" }}" aria-label="Default" aria-describedby="inputGroup-sizing-default">
<input class="input-group-text btn btn-outline-primary" type="submit" value="{{ call .tr "linkIt" }}">
</div>
<a class="btn btn-outline-primary mb-3" id="login-button" hidden>Start OpenID validation</a>