performOAuthFlow static method

Future<AuthorizationTokenResponse?> performOAuthFlow(
  1. BuildContext context,
  2. OAuthProvider provider, {
  3. Widget? loadingWidget,
  4. Color? backgroundColor,
  5. void onError(
    1. String
    )?,
})

Performs the OAuth authentication flow using a WebView.

Shows a WebView for user authentication and handles the redirect. Returns an AuthorizationTokenResponse if successful, null otherwise.

Implementation

static Future<AuthorizationTokenResponse?> performOAuthFlow(
  BuildContext context,
  OAuthProvider provider, {
  Widget? loadingWidget,
  Color? backgroundColor,
  void Function(String)? onError,
}) async {
  try {
    dev.log('Starting OAuth flow for provider: ${provider.name}');
    return await Navigator.push(
      context,
      MaterialPageRoute(
        builder: (context) => OAuthWebView(
          provider: provider,
          loadingWidget: loadingWidget,
          backgroundColor: backgroundColor,
        ),
      ),
    );
  } catch (e, stackTrace) {
    dev.log(
      'OAuth flow error',
      error: e,
      stackTrace: stackTrace,
    );
    onError?.call(e.toString());
    return null;
  }
}