Skip to content

@hanzo/ui 8.32.0: SignInPanel, the one-click sign-in every Hanzo site shares - #313

Merged
Darkhorse7stars merged 1 commit into
mainfrom
signin-panel
Nov 11, 2026
Merged

Darkhorse7stars merged 1 commit into
mainfrom
signin-panel

Conversation

@Darkhorse7stars

Copy link
Copy Markdown
Member

Why

Pressing Continue with Google or GitHub on hanzo.bot or hanzo.app landed on hanzo.ai/login without the provider, so people pressed Google a second time there. hanzo.team draws its own copy of the panel.

What (@hanzo/ui/auth)

  • handoff(request, way, signin?): from the site's own authorize request (getSigninUrl; PKCE verifier stays on the site):
    • a provider goes straight to https://hanzo.ai/v1/iam/oauth/authorize?…&provider=…. IAM redirects to Google or GitHub at once (checked live) and takes the provider's return on hanzo.ai, so the session lands there.
    • an email goes to hanzo.ai/login with login_hint; a new account to /signup; another account to the chooser (prompt=select_account).
  • SignInPanel: headline, one line, Continue with Google and GitHub, an email box, Create account and the terms line. Built from @hanzo/ui components with no framework code, so the Next.js export (hanzo-inc/app) and the Vite app (hanzo.team) draw it alike. No credential is typed on the site.
  • Version 8.31.0 → 8.32.0.

Testing

vitest run src/auth/signin-panel.test.tsx: 6 passed, including every handoff address and a press on Google that leaves straight for the provider. tsc: no errors in the new files (checked locally against older borrowed dependencies, so the full run is CI's).

Next

  • hanzo-inc/app: its hand-off (lib/auth/signin.ts useLeave) goes through handoff, so hanzo.app and hanzo.bot are one click.
  • hanzoai/team: hanzo.team draws SignInPanel.

… shares

A site's front page drew its own sign-in, and its Google and GitHub buttons
handed the browser to hanzo.ai/login without the provider, so the person
pressed Google a second time there.

@hanzo/ui/auth now has the one way every Hanzo site leaves to sign in:

- handoff(request, way): from the site's own authorize request (its client,
  callback, state and PKCE challenge; the verifier stays on the site), a
  provider goes straight to IAM's authorize ON hanzo.ai with `provider`, which
  sends the browser to Google or GitHub at once and takes the provider's return
  on hanzo.ai, so the session lands there. An email goes to hanzo.ai/login with
  login_hint, a new account to /signup, another account to the chooser.
- SignInPanel: the headline, one line, Continue with Google and GitHub, an email
  box, Create account and the terms, drawn from @hanzo/ui components and free of
  any framework, so a Next export and a Vite app draw it alike. No credential is
  typed on the site.
@Darkhorse7stars
Darkhorse7stars merged commit 9d31fef into main Nov 11, 2026
5 checks passed
@Darkhorse7stars
Darkhorse7stars deleted the signin-panel branch November 11, 2026 12:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant