Cognito Dart Auth SDK

Backend/admin AWS Cognito SDK for Dart.

This package is intended for server-side use where requests are signed for Amazon Cognito Identity Provider. The SDK exposes both direct request APIs and consumer/builder-style helpers through package:cognito_dart_auth_sdk/cognito_dart_auth_sdk.dart.

Installation

dependencies:
  cognito_dart_auth_sdk: ^0.0.3

Use CognitoAuth (a public alias of Cognito) with:

  1. an AWS region
  2. a CognitoHttpClient implementation that signs requests for cognito-idp

If you already have request-sending and SigV4-signing logic, CognitoSigV4HttpClient can wrap it.

Preferred Backend Initialization

import 'package:cognito_dart_auth_sdk/cognito_dart_auth_sdk.dart';

Future<void> main() async {
  final httpClient = CognitoSigV4HttpClient(
    ({
      required Uri uri,
      required Map<String, String> headers,
      required String body,
      Duration? timeout,
    }) async {
      throw UnimplementedError('Provide your HTTP sender.');
    },
    ({
      required String region,
      required String service,
      required String method,
      required Uri uri,
      required Map<String, String> headers,
      required String body,
    }) async {
      throw UnimplementedError('Provide your SigV4 signer.');
    },
  );

  final auth = CognitoAuth(
    region: 'us-east-1',
    httpClient: httpClient,
  );

  await auth.adminCreateUser(
    userPoolId: 'us-east-1_example',
    username: 'alice@example.com',
  );
}

Common Backend Operations

Create or inspect a user

await auth.adminCreateUser(
  userPoolId: 'us-east-1_example',
  username: 'alice@example.com',
);

final user = await auth.adminGetUser(
  userPoolId: 'us-east-1_example',
  username: 'alice@example.com',
);

print(user);

Add custom attributes to a user pool

await auth.addCustomAttributes(
  userPoolId: 'us-east-1_example',
  customAttributes: [
    CognitoSchemaAttributeType(
      name: 'custom:department',
      attributeDataType: CognitoAttributeDataType.string,
    ),
  ],
);

Record adaptive-auth feedback

await auth.adminUpdateAuthEventFeedback(
  userPoolId: 'us-east-1_example',
  username: 'alice@example.com',
  eventId: 'event-id',
  feedbackValue: 'Valid',
);

Consumer/Builder APIs

Many operations are also exposed in consumer-style variants such as:

  • adminCreateUserWith(...)
  • adminRespondToAuthChallengeWith(...)
  • adminUpdateAuthEventFeedbackWith(...)

Use those when you want builder validation or a more fluent payload setup.

Security Guidance

  • Keep AWS credentials and SigV4 signing on the backend.
  • Grant only the Cognito actions your service needs.
  • Do not ship privileged signing logic or admin credentials in browser/mobile apps.
  • Treat the sample apps as integration references, not as a secure admin deployment model.

Examples

See the example/ directory for current frontend sample apps and integration references.

Libraries

cognito_auth
cognito_dart_auth_sdk
cognito_main
Main entry point for Cognito SDK in Dart. Provides high-level wrapper methods for Cognito operations.
consumers/cognito_add_custom_attributes_consumer
consumers/cognito_admin_add_user_to_group_consumer
consumers/cognito_admin_confirm_sign_up_consumer
Consumer/builder-style facade for AdminConfirmSignUp operation.
consumers/cognito_admin_create_user_consumer
consumers/cognito_admin_delete_user_attributes_consumer
consumers/cognito_admin_delete_user_consumer
consumers/cognito_admin_disable_provider_for_user_consumer
Consumer/builder-style facade for AdminDisableProviderForUser operation.
consumers/cognito_admin_disable_user_consumer
Consumer/builder-style facade for AdminDisableUser operation.
consumers/cognito_admin_enable_user_consumer
Consumer/builder-style facade for AdminEnableUser operation.
consumers/cognito_admin_forget_device_consumer
Consumer/builder-style facade for AdminForgetDevice operation.
consumers/cognito_admin_get_device_consumer
Consumer/builder-style facade for AdminGetDevice operation.
consumers/cognito_admin_get_user_consumer
Consumer/builder-style facade for AdminGetUser operation.
consumers/cognito_admin_initiate_auth_consumer
consumers/cognito_admin_list_devices_consumer
consumers/cognito_admin_list_groups_for_user_consumer
consumers/cognito_admin_list_groups_for_user_paginator_consumer
consumers/cognito_admin_list_user_auth_events_consumer
consumers/cognito_admin_list_user_auth_events_paginator_consumer
consumers/cognito_admin_remove_user_from_group_consumer
consumers/cognito_admin_reset_user_password_consumer
consumers/cognito_admin_respond_to_auth_challenge_consumer
consumers/cognito_admin_set_user_mfa_preference_consumer
consumers/cognito_admin_set_user_password_consumer
consumers/cognito_admin_set_user_settings_consumer
consumers/cognito_admin_update_auth_event_feedback_consumer
consumers/cognito_confirm_signup_consumer
consumers/cognito_sign_up_consumer
enums/cognito_attribute_datatype
exceptions/cognito_add_custom_attributes_validation_exception
exceptions/cognito_service_exception
exceptions/cognito_validate_exception
models/add_custom_attributes_request_model
models/cognito_user_model
requests/cognito_add_custom_attributes_request
requests/cognito_admin_add_user_to_group_request
requests/cognito_admin_create_user_request
AdminCreateUser — Creates a new user in the specified Cognito user pool.
requests/cognito_admin_delete_user_attributes_request
requests/cognito_admin_delete_user_request
requests/cognito_admin_get_device_request
requests/cognito_admin_get_user_request
requests/cognito_admin_initiate_auth_request
requests/cognito_admin_list_devices_request
requests/cognito_admin_list_groups_for_user_paginator_request
requests/cognito_admin_list_groups_for_user_request
requests/cognito_admin_list_user_auth_events_paginator_request
requests/cognito_admin_list_user_auth_events_request
requests/cognito_admin_remove_user_from_group_request
requests/cognito_admin_reset_user_password_request
requests/cognito_admin_respond_to_auth_challenge_request
requests/cognito_admin_set_user_mfa_preference_request
requests/cognito_admin_set_user_password_request
requests/cognito_admin_set_user_settings_request
requests/cognito_admin_update_auth_event_feedback_request
requests/cognito_admin_update_device_status_request
requests/cognito_confirm_signup_request
requests/cognito_http_client
requests/cognito_sign_up_request