Problem
login.stx and register.stx both render two social buttons with full provider artwork, and neither does anything: no @click, no OAuth routes, no provider config. A visitor who presses one gets no feedback at all.
They are Google and Apple — not GitHub, as this issue said until now. login.stx:190 and :196, register.stx:261 and :267. Nothing in app/Actions/Auth/ handles a callback; the only GitHub OAuth in the codebase is Actions/Buddy/BuddyGitHubConnectAction, which is buddy-bot's repository connection and unrelated to signing in.
Worth knowing before this is picked up: Apple is the more demanding half. Sign in with Apple needs a paid developer account, a Services ID, a key rather than a secret, a client secret regenerated on a schedule, and — if we ever ship the iOS app to the App Store offering any other social login — it is required rather than optional. Google alone is a much smaller piece of work, and shipping it first is reasonable.
Acceptance
- OAuth redirect and callback routes, with provider config from env.
- Wire both buttons; create or link a user on first login.
User.passwordnullable, for accounts that only ever authenticate through a provider.- Decide what happens when a provider returns an email that already has a password account — link or refuse, not a silent second account.
- A signed-out visitor who presses a button and abandons the flow lands back where they started, still signed out, with no half-created user.