{{ message }}
Repository navigation
Sign in with Google for EvoSys Pro, off by default (#430) - #433
Merged
Merged
Conversation
Adds "Continue with Google" to the EvoSys Pro login, behind GOOGLE_SIGNIN_ENABLED (unset in production, so nothing changes until the owner configures Google Cloud). - Server-side OIDC: authorization code with PKCE (S256), nonce, state bound to the starting browser by an HttpOnly cookie (login CSRF), single-use transactions. - ID token verified with Google's keys: signature, issuer, audience, expiry, then nonce and email_verified. - Accounts are found only by an explicit link (Google sub) made by the signed-in user from Settings. An email match never signs anyone in or links anything. - Session hand-off by a 2-minute single-use ticket in the URL fragment, redeemed by POST from the allowed origin; the session token never appears in a URL. - Same checks as the password login: active account, platform (brand) isolation, server-side routing via /auth/my-contexts, no role changes; god_admin is password-only unless GOOGLE_SIGNIN_ALLOW_GOD=1. - No inert button: the login shows Google only when /auth/google/config says so. - docs/auth/GOOGLE_SIGNIN.md: owner Google Cloud setup and env vars. - tests/test_google_signin.py: 20 tests with real RS256 tokens. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QVM51EcDqHYqkghjpEmfBt
…autofill fixes
Owner
Author
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Closes #430 once turned on. Separate from PR #431 (white fields / badge). Do not merge before #431. Both touch
EvosysLogin.jsx,evosys-login.cssandevosysLogin.test.mjs, so this branch will be rebased after #431 merges.Status: built and tested, OFF
GOOGLE_SIGNIN_*variables./auth/google/*endpoint answers 404 or{"enabled": false}until the owner completes the Google Cloud setup indocs/auth/GOOGLE_SIGNIN.md.Security design
email_verified.sub./auth/my-contexts.GOOGLE_SIGNIN_ALLOW_GOD=1. GOD Mode and the Executive Suite never appear on the login page, and an advisor signed in with Google is still denied/godand/executive.AUDIT:, and the endpoints are rate-limited./auth/google/configsays it is enabled for that origin. Any failure means no button.Affected screens
/auth/google/complete.Screenshots
These come from a local test harness: the real backend, a simulated Google account chooser, and synthetic data. They show the feature turned on.
Tests
Backend:
tests/test_google_signin.py, 20/20 pass, using real RS256 ID tokens signed by a test key. Coverage:/godand/executivedenied.Full backend suite: 1402 passed, 4 failed. The same 4 fail on
main(roofing mission-control, 3 worker-isolation review-request fixture tests).Browser E2E: 13/13 pass. The harness used Chromium with the real backend and a simulated Google chooser. Checks:
Frontend:
evosysLogin.test.mjs8/8. API-contract, workspace-entry and UI static-guard tests pass.Build
vite buildpasses.Owner steps before turning it on
See
docs/auth/GOOGLE_SIGNIN.md. In short:https://advisorflow-backend.onrender.com/auth/google/callback.GOOGLE_SIGNIN_CLIENT_ID,GOOGLE_SIGNIN_CLIENT_SECRETandGOOGLE_SIGNIN_REDIRECT_URIon advisorflow-backend.GOOGLE_SIGNIN_ENABLED=1last.It has not been tested against real Google. That needs the owner's credentials.
Shared files are coordinated via #239:
Login.jsx,client.js,App.jsx,Settings.jsx,main.py,registry.py.Generated by Claude Code