appwrite_auth_ui 0.0.2 copy "appwrite_auth_ui: ^0.0.2" to clipboard
appwrite_auth_ui: ^0.0.2 copied to clipboard

UI library to implement auth forms using Appwrite and Flutter

Appwrite Auth UI

A simple library of predefined widgets to easily and quickly create auth components using Flutter and Appwrite.

Disclaimer #

The newest version of the appwrite package is designed to work with Appwrite 1.4.0. Appwrite Cloud is currently using Appwrite 1.1.2. As a result, this package uses Appwrite 9.0.1. You can track the progress of this issue here.

Getting Started #

Create a config.json file in your assets folder and add the following fields:

{
  "APPWRITE_PROJECT_ID": "",
  "APPWRITE_MAGIC_LINK_URL": ""
}

Run your app using the following command:

flutter run --dart-define-from-file=assets/config.json

Email Auth #

Use a AppwriteEmailAuth widget to create an email and password signin/ signup form. It also contains a button to toggle to display a forgot password form.

AppwriteEmailAuth(
  redirectUrl: const String.fromEnvironment('APPWRITE_MAGIC_LINK_URL'),
  onSignInComplete: (response) {
    Navigator.of(context).pushReplacementNamed('/home');
  },
  onSignUpComplete: (response) {
    Navigator.of(context).pushReplacementNamed('/home');
  },
  metadataFields: [
    MetaDataField(
      prefixIcon: const Icon(Icons.person),
      label: 'Username',
      key: 'username',
      validator: (val) {
        if (val == null || val.isEmpty) {
          return 'Please enter something';
        }
        return null;
      },
    ),
  ],
),

Use AppwriteMagicAuth widget to create a magic link signIn form.

AppwriteMagicAuth(
     onSuccess: (response) {
        // do something, for example: 
        // Navigator.of(context).pushReplacementNamed('/home');
     },
     onError: (error) {
        // Do something with the error
     },
     redirectUrl: kIsWeb
     ? null
     : 'io.appwrite.flutterquickstart://login-callback',
),

Reset password #

Use AppwriteResetPassword to create a password reset form.

AppwriteResetPassword(                                   
  onError: (error) {                                     
    // Do something with the error                       
  },                                                     
  onSuccess: (response) {                                
    Navigator.of(context).pushReplacementNamed('/home');
  },                                                     
),                                                        

Social Auth #

Use AppwriteSocialsAuth to create list of social login buttons.

AppwriteSocialsAuth(
    colored: true,
    socialProviders: SocialProviders.values,
    onSuccess: (session) {
      Navigator.of(context).pushReplacementNamed('/home');
    },
    onError: (error) {
      // Do something with the error
    },
)

Theming #

This library uses bare Flutter components so that you can control the appearance of the components using your own theme.