uae_pass

Un-official UAE Pass Flutter plugin for Android and iOS.

Demo

Getting Started

  • Add the plugin to your pubspec.yaml file
flutter_uae_pass: ^0.0.1
  • Run flutter pub get
flutter pub get
  • Import the package
import 'package:flutter_uae_pass/uae_pass.dart';
final _uaePassPlugin = UaePass();


  • Initialize the plugin - Sandbox
  await _uaePassPlugin.setUpSandbox();
  • Initialize the plugin - Production
    await _uaePassPlugin.setUpEnvironment(
      clientId: "<clientId>",
      clientSecret: "<clientSecret>",
      urlScheme: "myappscheme",
      redirectUri: "<redirectUri>",
      isProduction: true,

    );

Scopes are as follows

  • urn:uae:digitalid:profile:general
  • urn:uae:digitalid:profile

Main features

  • signIn()
  • getAccessToken(String authCode)
  • getProfile(String token)
  • signOut()

Call the authenticate method

  String? authCode = await _uaePassPlugin.signIn();

To get access token

  String? accessToken = await _uaePassPlugin.getAccessToken(authCode);

To get public profile data

you can fetch this information from profile

  • idn
  • email
  • firstnameAR
  • firstnameEN
  • fullnameEN
  • gender
  • lastnameAR
  • lastnameEN
  • mobile
  • nationalityAR
  • nationalityEN
  • sub
  • userType
  • uuid
  ProfileData? profileData = await _uaePassPlugin.getProfile(accessToken);

iOS Setup

  • Add the following to your Info.plist file
		
		<key>LSApplicationQueriesSchemes</key>
		<array>
			<string>uaepass</string>
			<string>uaepassqa</string>
			<string>uaepassdev</string>
			<string>uaepassstg</string>
		</array>
		<key>CFBundleURLTypes</key>
		<array>
			<dict>
				<key>CFBundleTypeRole</key>
				<string>Editor</string>
				<key>CFBundleURLName</key>
				<string>myappscheme</string>
				<key>CFBundleURLSchemes</key>
				<array>
					<string>myappscheme</string>
				</array>
			</dict>
		</array>

Android Setup

  • Update android:launchMode="singleTask" the AndroidManifest.xml file

 <activity
            android:name=".MainActivity"
            android:exported="true"
            android:launchMode="singleTask"
            .....

            </activity>

  • Set up the queries in your AndroidManifest.xml file (To make our app open UAE Pass App)
    <queries>
        <package android:name="ae.uaepass.mainapp" />
        <package android:name="ae.uaepass.mainapp.qa" />
        <package android:name="ae.uaepass.mainapp.stg" />
    </queries>

  • Set up the intent filter in your AndroidManifest.xml file (To Reopen our application after uaepass done)
            <intent-filter >
                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />


                <data
                    android:host="success"
                    android:scheme="myappscheme" />

                <data
                    android:host="failure"
                    android:scheme="myappscheme" />

            </intent-filter>

References

Thanks for Faisal for this repo uae_pass_flutter i improve the code and create this package