magic_sdk 6.0.1 copy "magic_sdk: ^6.0.1" to clipboard
magic_sdk: ^6.0.1 copied to clipboard

This is your entry-point to secure, passwordless authentication for your iOS or Android-based Flutter app.

Magic empowers developers to protect their users via an innovative, passwordless authentication flow without the UX compromises that burden traditional OAuth implementations.

As of v4.0.0, passcodes (ie. loginWithSMS(), loginWithEmailOTP()) are replacing Magic Links (ie. loginWithMagicLink()) for all of our Mobile SDKs⁠. Learn more

Features #

This is your entry-point to secure, passwordless authentication for your iOS or Android-based Flutter app.

Installation #

Add magic_sdk to your pubspec.yaml:

dependencies:
  flutter:
    sdk: flutter
  magic_sdk: ^4.0.0

Run the following command to install dependencies

$ dart pub get

Create an SDK Instance #

In main.dart, instantiate Magic with your publishable key


void main() {
  runApp(const MyApp());

  Magic.instance = Magic("YOUR_PUBLISHABLE_KEY");
}

Use Stack in the top level and add Magic.instance.relayer to the children of Stack to ensure the best performance

Note: Relayer is required to establish communication between apps and Magic service. Make sure to have it in a stack whenever you need to authenticate or interact with blockchain

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    @override
    Widget build(BuildContext context) {
      return MaterialApp(
          title: 'Magic Demo',
          home: Stack(children: [
            const LoginPage(),
            Magic.instance.relayer
          ]));
    }
  }
}

Authenticate your first user!

var token = await magic.auth.loginWithEmailOTP(email: textController.text);

Additional information #

For more detail, please check the Magic Link Flutter doc