Documentation Index
Fetch the complete documentation index at: https://docs.getpara.com/llms.txt
Use this file to discover all available pages before exploring further.
Para treats OAuth the same as email and phone authentication: trigger the flow, reuse the One-Click block, and fall back to
passkey/password only if you explicitly enable them.
Before You Start
- Complete the base setup so your app has a custom URL scheme and a shared
FlutterWebAuthSession
(setup guide).
- Add social buttons alongside your email/phone inputs; users should see all auth options together.
Handle Social Login
lib/views/authentication_view.dart
Future<void> handleSocialLogin(OAuthMethod provider) async {
try {
final authState = await para.verifyOAuth(
provider: provider,
appScheme: 'yourapp',
);
if (authState.loginUrl?.isNotEmpty == true) {
await para.presentAuthUrl(
url: authState.loginUrl!,
webAuthenticationSession: webAuthSession,
);
final nextStage = authState.effectiveNextStage;
if (nextStage == AuthStage.signup) {
await para.waitForSignup();
} else {
await para.waitForLogin();
}
await para.touchSession();
await para.fetchWallets();
return;
}
if (authState.stage == AuthStage.login) {
try {
await para.touchSession();
} catch (_) {
// Session refresh is best-effort for OAuth callbacks
}
await para.fetchWallets();
// Navigate to your main app flow
}
} catch (e) {
debugPrint('OAuth login failed: $e');
}
}
Same pattern as the example app (examples-hub/mobile/with-flutter/lib/screens/auth_screen.dart).
Provider Enum Reference
| Provider | Enum |
|---|
| Google | OAuthMethod.google |
| Apple | OAuthMethod.apple |
| Discord | OAuthMethod.discord |
Other providers (Twitter, Facebook, Farcaster, etc.) are not part of the default Flutter example or this guide. Refer to the
API reference to see which ones your project supports today.
See It in Action