mirror of
https://github.com/PR0M3TH3AN/bitlogin.git
synced 2026-11-04 12:31:21 +00:00
Implements centralized-onramps.md §CO5. A host opts in via onramp-url / onramp-name / onramp-providers attributes -- nothing centralized ships by default. The options menu gains the owner-chosen group heading 'Use an account you already have' covering extension, remote signer, key import, and 'Continue with <Provider>' rows whose sub-label IS the custody statement (§CO7): '<Service> manages your sign-in'. The handshake (onramp.ts, pure and unit-tested): popup to the configured URL with a CSPRNG state nonce; exactly one unlock or register message accepted, only from the configured origin with the exact nonce. Returning users flow into the ordinary password login. New users choose a fresh identity or §SF10-import an existing nsec; registration runs client-side and the password is POSTed to the service -- if the store fails, the phrase ceremony is forced immediately rather than deferred, so no account exists that nobody can unlock. Tier B2 otherwise: the dashboard carries a 'Secure your account' card into the existing phrase screens while the phrase is still in session memory, plus a standing '<Service> manages your sign-in' line. Policy pins: on-ramp rows render only inside the menu with the custody label; group heading wording pinned. 12 new tests; verified visually with a configured element. Co-Authored-By: Claude Fable 5 <[email protected]>