flutter_password_scoring 0.0.2+3 copy "flutter_password_scoring: ^0.0.2+3" to clipboard
flutter_password_scoring: ^0.0.2+3 copied to clipboard

Helper library to score password strength with `dart_zxcvbn` and provide suggestions for improvement.

example/lib/main.dart

import 'dart:isolate';

import 'package:dart_zxcvbn/dart_zxcvbn.dart';
import 'package:dart_zxcvbn_language_common/dart_zxcvbn_language_common.dart';
import 'package:dart_zxcvbn_language_en/dart_zxcvbn_language_en.dart';
import 'package:flutter/material.dart';
import 'package:flutter_password_scoring/flutter_password_scoring.dart';

Future<void> handleScoring(SendPort sendPort) async {
  ReceivePort receivePort = ReceivePort();
  sendPort.send(receivePort.sendPort);

  final langCommon = LanguageCommon();
  final langEn = LanguageEn();

  zxcvbn.setOptions(Options(
    dictionary: Dictionary.merge([
      langCommon.dictionary,
      langEn.dictionary,
    ]),
    graphs: langCommon.adjacencyGraphs,
    translations: langCommon.translations,
  ));

  // Used to refresh response when locale changes
  String lastPassword = '';

  await for (var message in receivePort) {
    if (message is Locale) {
      zxcvbn.setOptions(Options(
        translations: message.languageCode == 'en'
            ? langEn.translations
            : langCommon.translations,
      ));
    }

    lastPassword = message is String ? message : lastPassword;
    if (lastPassword.isNotEmpty) {
      final result = zxcvbn(lastPassword);

      sendPort.send(result);
    }
  }
}

void main() {
  runApp(const MainApp());
}

class MainApp extends StatelessWidget {
  const MainApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Center(
          child: PasswordScoringBuilder(
            handler: handleScoring,
            loadingPlaceholder: const CircularProgressIndicator(),
            builder: (BuildContext context, Result? data,
                PasswordScoringHelper helper) {
              return TextField(
                onChanged: helper.update,
              );
            },
          ),
        ),
      ),
    );
  }
}
2
likes
0
points
11
downloads

Publisher

verified publisherinway.dev

Weekly Downloads

Helper library to score password strength with `dart_zxcvbn` and provide suggestions for improvement.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

dart_zxcvbn, flutter

More

Packages that depend on flutter_password_scoring