Skip to content

feat(auth): full login stack with Reown, email, social, and browser fallback - #1

Merged
Shachindra merged 5 commits into
mainfrom
devin/1784390666-gateway-login
Jul 18, 2026
Merged

feat(auth): full login stack with Reown, email, social, and browser fallback#1
Shachindra merged 5 commits into
mainfrom
devin/1784390666-gateway-login

Conversation

@devin-ai-integration

@devin-ai-integration devin-ai-integration Bot commented Jul 18, 2026

Copy link
Copy Markdown

Summary

Replaces the Solana-only gateway login with the full Erebrus auth stack, matching erebrus-vpn: Reown AppKit (wallet + social/email), native Google/Apple, gateway email OTP, Solana Mobile Wallet Adapter for Seeker/Saga, and a desktop browser fallback that returns a PASETO token via erebrusdrop:// deep links.

What changed

  • DropAuthService now orchestrates all login methods and exposes the same session/org state (ValueNotifiers for signedIn, orgs, selectedOrg, error, isAuthenticating).
  • New GatewayLoginScreen selects the right UX per platform:
    • Desktop: “Sign in with browser” + paste-token fallback.
    • Solana Mobile: Seed Vault wallet connection.
    • Generic mobile: Reown AppKit, native Google/Apple, and gateway email code.
  • Added auth_config.dart, social_login.dart, and desktop_web_auth.dart for provider IDs, deep-link scheme, and browser callback parsing.
  • Extended DropAuthClient with /api/v2/auth/methods, /api/v2/auth/email/login/*, /api/v2/auth/google, and /api/v2/auth/apple.
  • Added dependencies: reown_appkit, google_sign_in, sign_in_with_apple, url_launcher, app_links, package_info_plus.
  • Wired erebrusdrop://auth deep-link intent filters and wallet package queries in AndroidManifest.xml, ios/Runner/Info.plist, and macos/Runner/Info.plist.
  • Gateway nodes remain Smart Send / Library targets only; the first org returned after login is still auto-selected.

Verification

  • flutter analyze passes.
  • flutter test passes (27/27).

Configuration notes

  • Set REOWN_PROJECT_ID via --dart-define or .env to enable the Reown AppKit wallet modal.
  • Set GOOGLE_SERVER_CLIENT_ID and APPLE_SERVICE_ID for native social sign-in.
  • Desktop browser auth works without any client IDs.

Link to Devin session: https://app.devin.ai/sessions/0ca3cab2e7c8426d871995c288798a3e
Requested by: @Shachindra

@Shachindra Shachindra self-assigned this Jul 18, 2026
@devin-ai-integration

Copy link
Copy Markdown
Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment, CI, and merge conflict monitoring

- Replace Solana-only gateway login with multi-provider DropAuthService:
  Reown AppKit wallet/social/email, native Google/Apple, gateway email OTP,
  Solana Mobile Wallet Adapter, and desktop browser auth (erebrusdrop://).
- Add GatewayLoginScreen with per-platform button layout.
- Keep gateway nodes as Smart Send / Library targets only and default to the
  first org returned by the gateway.
- Add auth_config, social_login, desktop_web_auth helpers.
- Update pubspec deps: reown_appkit, google_sign_in, sign_in_with_apple,
  url_launcher, app_links, package_info_plus.
- Wire iOS/macOS/Android deep-link scheme and wallet package queries.
@devin-ai-integration devin-ai-integration Bot changed the title Gateway login, org selection, and global node uploads feat(auth): full login stack with Reown, email, social, and browser fallback Jul 18, 2026

@Shachindra Shachindra left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@Shachindra
Shachindra merged commit 4680a3f into main Jul 18, 2026
1 check passed
@Shachindra
Shachindra deleted the devin/1784390666-gateway-login branch July 19, 2026 06:06
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