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
Recommended Initialization Model
Use CognitoAuth (a public alias of Cognito) with:
- an AWS region
- a
CognitoHttpClientimplementation that signs requests forcognito-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_link_provider_for_user_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_link_provider_for_user_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