FLUTTER ECOSYSTEM

MohamedAbd0/flutter_uae_pass

iOS 및 Android 전용 플러터용 UAE Pass 플러그인입니다. 이는 비공식 버전입니다.

flutter_uae_pass 프로젝트 이미지
Stars
5
Forks
13
최근 푸시(UTC)
2025. 11. 2.
프로젝트 상태
활성
 Mohamed Abdo Elnashar GitHub avatar
GITHUB User

Mohamed Abdo Elnashar ↗

Senior Flutter Developer I am a software engineer with 7+ years of experience, interested in mobile applications for more than 6 years, studying for a master's

Dscale.ioDubai, UAE
언어SwiftDartKotlinRubyHTMLObjective-C

이 저장소가 배포한 패키지

사용 중인 의존성

의존성 목록 5 개
  • flutter{"sdk":"flutter"}
  • plugin_platform_interface^2.0.2
  • flutter_web_plugins{"sdk":"flutter"}
  • flutter_test개발 의존성{"sdk":"flutter"}
  • flutter_lints개발 의존성^3.0.1

원본 README

아래는 영문 원문 스냅샷입니다. 최신 내용은 GitHub에서 확인하세요.

README 펼치기 / 접기

flutter_uae_pass

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

Demo

Platform Screenshots

Android iOS Web
Android iOS Web

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
  • Run flutter pub get
flutter pub get
  • Import the package
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