desktop_webview_auth 0.0.15 copy "desktop_webview_auth: ^0.0.15" to clipboard
desktop_webview_auth: ^0.0.15 copied to clipboard

This package enables Firebase OAuth on desktop via webview

Desktop webview auth #

Chat on Discord

This package enables Firebase OAuth on desktop platforms via webview

Supported providers: #

  • Google
  • Facebook
  • Twitter

Installation #

macOS setup #

The recaptcha verification flow is done on the local server, and it requires that the app has the following in the Release.entitlements:

<key>com.apple.security.network.server</key>
<true/>
copied to clipboard

Linux setup #

To display webview on Linux, WebKit2GTK development libraries are used, if you don't have it already installed:

Ubuntu:

apt install libwebkit2gtk-4.0-dev
copied to clipboard

Fedora:

dnf install webkit2gtk3-devel
copied to clipboard

Additionally, if Flutter is installed using snap, you might face issues compiling the app, to fix you would need to uninstall the snap version and install Flutter manually on Linux.

Windows setup #

Make sure you are on latest stable channle of Flutter, and have installed the requirements as mentioned here.

Nothing extra is needed to get started on Windows.

Add dependency #

flutter pub add desktop_webview_auth
copied to clipboard

Imports #

import 'package:desktop_webview_auth/desktop_webview_auth.dart';
import 'package:desktop_webview_auth/google.dart';
import 'package:desktop_webview_auth/facebook.dart';
import 'package:desktop_webview_auth/twitter.dart';
copied to clipboard

Usage #

  • Configure OAuth providers in firebase console
  • Create an instance of ProviderArgs
final googleSignInArgs = GoogleSignInArgs(
  clientId:
    '448618578101-sg12d2qin42cpr00f8b0gehs5s7inm0v.apps.googleusercontent.com',
  redirectUri:
    'https://react-native-firebase-testing.firebaseapp.com/__/auth/handler',
  scope: 'email',
)
copied to clipboard
  • call DesktopWebviewAuth.signIn
try {
    final result = await DesktopWebviewAuth.signIn(args);

    print(result?.accessToken);
    print(result?.tokenSecret);
} catch (err) {
    // something went wrong
}
copied to clipboard
  • create an instance of OAuthCredential and sign in
import 'package:firebase_auth/firebase_auth.dart';

final credential = GoogleAuthProvider.credential(accessToken: result.accessToken)

FirebaseAuth.instance.signInWithCredential(credential);
copied to clipboard
47
likes
140
points
33.7k
downloads

Publisher

verified publisherinvertase.io

Weekly Downloads

2024.08.07 - 2025.02.19

This package enables Firebase OAuth on desktop via webview

Repository (GitHub)

Documentation

API reference

License

Apache-2.0 (license)

Dependencies

crypto, flutter, flutter_web_plugins, http, plugin_platform_interface

More

Packages that depend on desktop_webview_auth