Skip to content

Latest commit

 

History

History
93 lines (76 loc) · 2.64 KB

README.md

File metadata and controls

93 lines (76 loc) · 2.64 KB

Frontegg logo

Frontegg-Flutter

Flutter Web pre-built Component for faster and simpler integration with Frontegg services.

Installation

Frontegg-Flutter is available as an pub.dev package.

1. Add frontegg package to pubspec.yaml dependencies:

 dependencies:
    frontegg:

Add script tag to the main HTML template file:

[VERSION] may be latest, next or specific versions.

 <body>
    <!-- set frontegg the first script -->
    <script src="https://assets.frontegg.com/admin-box/frontegg/[VERSION].js"></script>
    <!-- other scripts -->
 </body>

Initialize Frontegg App:

  1. Use setUrlStrategy(PathUrlStrategy()); to be able to work with frontegg routes
  2. Edit main.dart file:
    void main(){
    
      fronteggApp = initialize(FronteggOptions(
          version: 'next',
          contextOptions: ContextOptions(
              baseUrl: 'https://[HOST_NAME].frontegg.com',
              requestCredentials: 'include'
          )
      ));
    
      /**
       * wait for frontegg to be loaded and then runApp
       */
      
      fronteggApp.onLoad(allowInterop(() {
        runApp(MyApp());
      }));
    }
  3. In order to observe to changes in Frontegg store:
     fronteggApp.onStoreChanged(allowInterop((FronteggState state) {
        log(state.auth?.user?.email);
     }));
  4. Add Frontegg routes as empty Container to the application router
      // ...
    
      return MaterialApp(
      title: 'Flutter Demo',
      initialRoute: '/',
      routes: {
        '/': (context) => MyHomePage(title: 'Flutter Demo Home Page'),
        '/overview': (context) => MyHomePage(title: 'TTTT'),
        
        /**
          * Below Frontegg Routes
          */
        '/account/login': (context) => Container(),
        '/account/logout': (context) => Container(),
        '/account/sign-up': (context) => Container(),
        '/account/activate': (context) => Container(),
        '/account/invitation/accept': (context) => Container(),
        '/account/forget-password': (context) => Container(),
        '/account/reset-password': (context) => Container(),
        '/account/social/success': (context) => Container()
      },
    
      // ... 

License

This project is licensed under the terms of the MIT license.