forked from mirrors/fediprofile
Verify profile links through reciprocal rel=me or rel=fediprofile #31
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Current behavior
FediProfile emits
rel="me"for every visible profile link, but does not check for a backlink. The displayedverifiedflag is instead derived fromVerifiedUris, populated by login/account initialization and backfill. That table also affects badge recipient matching, so it cannot simply be reused as a link-check cache.Required behavior
<a>or<link>whosereltoken list includesmeorfediprofileand whosehrefresolves to the canonical FediProfile profile URL. Document the customrel="fediprofile"form. Parse HTML/relative URLs properly; compare URI identity using the existing canonicalization rules, without treating a link to another local account or path as proof. Keep FediProfile's outgoingrel="me"links.Migration and boundaries
VerifiedUrisas the source of the link badge. Recheck existing links rather than grandfathering them as verified. Keep authenticated account-identity evidence separate where needed: audit registration/backfill, badge import, automatic badge dispatch, and actor serialization so reciprocal link proof does not silently grant unrelated identity/authorization privileges.Tests
Use a red/green functional test for the behavior change, then unit contracts for
reltoken parsing, URL identity, add/edit/recheck/revocation, stale results, concurrent edits, and fetch safety. Keep mocked-HTTP tests in commit CI; run real HTTP/database integration manually where required. Document the new verification meaning and cron setting.Implemented on
michaelthrough5bfe3f0.rel="me"orrel="fediprofile"link to the canonical profile URL. Link verification is stored separately from login/identity evidence.Red test:
e684e17, Forgejo run 1182. Final green commit:5bfe3f0. Commit CI and integration workflow both passed. The integration workflow passed 466 repository, 149 service, 16 web, 220 full-application, and 14 browser tests.