Hamuga ID SDK

Hamuga ID authentication SDK for Flutter.

English | Монгол


English

Features

  • Customizable HamugaIdButton widget.
  • Support for different button sizes and variants.
  • Handles Hamuga ID OAuth 2.0 flow.
  • Singleton architecture with HamugaId.instance.
  • Stream-based and Future-based result handling.

Installation

dependencies:
  hamuga_id_sdk: ^0.0.7
flutter pub get

Usage

1. Initialize the SDK

Initialize HamugaId in your main() function. Important: Call WidgetsFlutterBinding.ensureInitialized() first.

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  HamugaId.initialize(
    const HamugaIdConfig(
      clientId: 'YOUR_CLIENT_ID',
      redirectUri: 'YOUR_REDIRECT_URI',
      scopes: [HamugaIdScope.openid, HamugaIdScope.email],
    ),
  );
  runApp(const MyApp());
}

2. Listen for Auth Responses

HamugaId.instance.onAuthResponse.listen((response) {
  if (response.isSuccess) {
    print('Auth Code: ${response.code}');
  } else {
    print('Error: ${response.error}');
  }
});

3. Manual Trigger

final response = await HamugaId.instance.signIn(
  autoClose: true, // Automatically close browser on redirect (default: true)
);

4. Utility Functions

Extract Code from URL

final code = HamugaId.getAuthCodeFromUrl(url);

Manual Close

await HamugaId.instance.close();

Монгол

Боломжууд

...

3. Програмын аргаар нээх

final response = await HamugaId.instance.signIn(
  autoClose: true, // Redirect таарвал хөтөчийг автоматаар хаана (өгөгдмөл: true)
);

4. Туслах функцууд

URL-аас код салгах

final code = HamugaId.getAuthCodeFromUrl(url);

Хөтөчийг гараар хаах

await HamugaId.instance.close();

Монгол

Боломжууд

  • Өөрчлөх боломжтой HamugaIdButton виджет.
  • Төрөл бүрийн хэмжээ болон загварын сонголттой.
  • Hamuga ID OAuth 2.0 урсгалыг бүрэн дэмжинэ.
  • HamugaId.instance ашиглан тохиргоог нэг дороос удирдах боломжтой.
  • Stream болон Future ашиглан хариуг хүлээн авна.

Суулгах

dependencies:
  hamuga_id_sdk: ^0.0.7
flutter pub get

Хэрэглээ

1. SDK-г эхлүүлэх

main() функц дотор HamugaId-г эхлүүлнэ. Анхаар: Эхлээд WidgetsFlutterBinding.ensureInitialized()-г заавал дуудна.

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  HamugaId.initialize(
    const HamugaIdConfig(
      clientId: 'YOUR_CLIENT_ID',
      redirectUri: 'YOUR_REDIRECT_URI',
      scopes: [HamugaIdScope.openid, HamugaIdScope.email],
    ),
  );
  runApp(const MyApp());
}

2. Хариуг сонсох

HamugaId.instance.onAuthResponse.listen((response) {
  if (response.isSuccess) {
    print('Auth Code: ${response.code}');
  } else {
    print('Error: ${response.error}');
  }
});

3. Програмын аргаар нээх

final response = await HamugaId.instance.signIn();

License

MIT