flutter_uae_pass
Un-official UAE Pass Flutter plugin for iOS, Android, and Web .
Platform Screenshots
Platform Support
Platform
Supported
Implementation
iOS
✅
WKWebView with full screen modal
Android
✅
Custom WebView Activity
Web
✅
OAuth2 popup authentication
Getting Started
Add the plugin to your pubspec.yaml file
flutter_uae_pass: ^1.0.6
flutter pub get
import 'package:flutter_uae_pass/flutter_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 ,
language : "en" ,
);
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 >
Web Setup
For web applications, no additional configuration is required! The plugin automatically uses a popup-based OAuth2 flow that works in all modern browsers.
Web-Specific Features:
Popup Authentication : Opens UAE Pass login in a secure popup window
Automatic Redirect Handling : Automatically detects and processes the authorization callback
CORS Compliance : Uses proper HTTP requests for token exchange and profile retrieval
Session Management : Handles cookies and localStorage for proper logout functionality
Browser Requirements:
Modern browsers with popup support (Chrome, Firefox, Safari, Edge)
JavaScript enabled
Cookies enabled for proper session management
Production Considerations:
Ensure your redirect URI is properly configured in the UAE Pass dashboard
For production, make sure your domain is whitelisted in UAE Pass configuration
Test popup blockers - inform users to allow popups for your domain if needed
References
Thanks for Faisal for this repo uae_pass_flutter i improve the code and create this package