Changeset af2cc73 in Klonkt for src/routes/activitypub.js
- Timestamp:
- 08/18/2026 06:50:08 PM (3 weeks ago)
- Branches:
- main
- Children:
- d85b66f
- Parents:
- 9da8027
- git-author:
- Bart <bart@…> (08/18/2026 06:05:22 PM)
- git-committer:
- Bart <bart@…> (08/18/2026 06:50:08 PM)
- File:
-
- 1 edited
-
src/routes/activitypub.js (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
src/routes/activitypub.js
r9da8027 raf2cc73 130 130 } 131 131 132 /** 133 * Is dit een vraag naar de WORTEL van deze server? 134 * 135 * FEP-61cf laat de home instance webfingeren op "the root URL of the destination 136 * site" om ons token-endpoint te vinden. Dat is een URL en geen `acct:`, dus hij 137 * strandde hierboven op de 400 -- terwijl een ACTOR-URI met een pad wel degelijk 138 * een 400 hoort te blijven (dat legt test/webfinger-bare-host.test.js vast, en 139 * dat is een uitgesproken keuze van eerder). Vandaar: alleen origin + '/' telt, 140 * alles met een pad niet. 141 */ 142 function isEigenWortel(resource, req) { 143 const r = String(resource || '').trim(); 144 if (!/^https?:\/\//i.test(r)) return false; 145 try { 146 const u = new URL(r); 147 if (u.pathname && u.pathname !== '/') return false; 148 if (u.search || u.hash) return false; 149 return asciiHost(u.host) === asciiHost(hostOf(req)); 150 } catch { return false; } 151 } 152 132 153 router.get('/.well-known/webfinger', (req, res) => { 154 if (isEigenWortel(req.query.resource, req)) { 155 res.type('application/jrd+json; charset=utf-8'); 156 res.set('Cache-Control', 'public, max-age=300'); 157 return res.send(JSON.stringify({ 158 subject: baseUrl(req) + '/', 159 links: [ 160 // Waar een home instance ondertekend een token mag ophalen (FEP-61cf 161 // stap 2/3). Host-niveau en niet per site: het token zegt WIE er binnen 162 // is, niet waar hij binnen mag -- dat besluit valt bij de poort. 163 { rel: 'http://purl.org/openwebauth/v1', href: baseUrl(req) + '/owa/token' }, 164 ], 165 })); 166 } 133 167 const user = webfingerGebruiker(req.query.resource); 134 168 if (!user) return res.status(400).type('text/plain').send('bad resource');
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)