nsg_login 1.0.0-beta.1 copy "nsg_login: ^1.0.0-beta.1" to clipboard
nsg_login: ^1.0.0-beta.1 copied to clipboard

Визуальные компоненты для авторизации и регистрации пользователей в приложениях NSG. Поддерживает вход по телефону, email и паролю с SMS-верификацией.

nsg_login #

Визуальные компоненты для авторизации и регистрации пользователей в приложениях NSG. Пакет предоставляет готовые UI компоненты для входа по телефону, email и паролю с поддержкой SMS-верификации.

Возможности #

  • 🔐 Множественные способы авторизации: телефон, email, пароль
  • 📱 SMS-верификация: автоматическая отправка и проверка кодов
  • 🎨 Настраиваемый дизайн: полная кастомизация цветов, размеров и текстов
  • 🔒 Валидация паролей: встроенная проверка сложности паролей
  • 💾 Запоминание пользователя: автоматическое сохранение токенов
  • 🌐 Поддержка капчи: защита от ботов
  • 📱 Адаптивный дизайн: поддержка различных размеров экранов

Установка #

Добавьте зависимость в ваш pubspec.yaml:

dependencies:
  nsg_login: ^1.0.0-beta.1

Быстрый старт #

1. Импорт пакета #

import 'package:nsg_login/nsg_login.dart';

2. Базовая настройка #

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: NsgLoginPage(
        provider, // Ваш NsgDataProvider
        widgetParams: () => NsgLoginParams(
          headerMessage: 'Моё приложение',
          usePhoneLogin: true,
          useEmailLogin: true,
          usePasswordLogin: true,
        ),
      ),
    );
  }
}

Использование #

Основная страница входа #

NsgLoginPage(
  provider,
  widgetParams: () => NsgLoginParams(
    // Основные настройки
    headerMessage: 'Добро пожаловать',
    usePhoneLogin: true,
    useEmailLogin: true,
    usePasswordLogin: true,
    
    // Кастомизация текстов
    textEnter: 'Войти',
    textRegistration: 'Регистрация',
    textRememberUser: 'Запомнить меня',
    
    // Цветовая схема
    cardColor: Colors.white,
    textColor: Colors.black,
    fillColor: Colors.blue,
    
    // Callback функции
    loginSuccessful: (context, parameter) {
      // Действие при успешном входе
      Navigator.pushReplacementNamed(context, '/home');
    },
    eventLoginWidgweClosed: (isLoginSuccessful) {
      // Действие при закрытии окна входа
      print('Login widget closed. Success: $isLoginSuccessful');
    },
  ),
)

Настройка валидации паролей #

NsgLoginParams(
  passwordValidator: (password) {
    if (password == null || password.length < 8) {
      return 'Пароль должен содержать минимум 8 символов';
    }
    if (!password.contains(RegExp(r'[A-Z]'))) {
      return 'Пароль должен содержать заглавную букву';
    }
    return null; // Пароль валиден
  },
  passwordIndicator: (password) {
    // Возвращает PasswordStrength из nsg_data
    if (password.length < 6) return PasswordStrength.weak;
    if (password.length < 10) return PasswordStrength.medium;
    return PasswordStrength.strong;
  },
)

Настройка обработки ошибок #

NsgLoginParams(
  errorMessageByStatusCode: (statusCode) {
    switch (statusCode) {
      case 40101:
        return 'Необходимо получить капчу';
      case 40300:
        return 'Неверный код подтверждения';
      case 40304:
        return 'Неверный логин или пароль';
      default:
        return 'Произошла ошибка: $statusCode';
    }
  },
)

Параметры конфигурации #

Основные параметры #

Параметр Тип Описание
headerMessage String Заголовок страницы входа
usePhoneLogin bool Разрешить вход по телефону
useEmailLogin bool Разрешить вход по email
usePasswordLogin bool Разрешить вход по паролю
useCaptcha bool Использовать капчу

Параметры дизайна #

Параметр Тип Описание
cardSize double Размер карточки (по умолчанию: 345.0)
iconSize double Размер иконок (по умолчанию: 28.0)
buttonSize double Размер кнопок (по умолчанию: 42.0)
cardColor Color Цвет карточки
textColor Color Цвет текста
fillColor Color Цвет заполнения

Callback функции #

Параметр Тип Описание
loginSuccessful Function Вызывается при успешном входе
loginFailed Function Вызывается при неудачном входе
eventLoginWidgweClosed Function Вызывается при закрытии окна входа
onClose VoidCallback Вызывается при закрытии окна

Зависимости #

Пакет использует следующие зависимости:

  • nsg_data: ^1.0.0 - Основная библиотека данных NSG
  • nsg_controls: ^1.0.0-beta.1 - UI компоненты NSG
  • get: ^5.0.0-beta.52 - State management
  • hovering: ^1.0.4 - Эффекты наведения
  • flutter_multi_formatter: ^2.13.7 - Форматирование полей ввода
  • shared_preferences: ^2.0.6 - Локальное хранение данных

Примеры #

Полные примеры использования доступны в папке /example (если создана).

Простой пример входа по телефону #

NsgLoginPage(
  provider,
  widgetParams: () => NsgLoginParams(
    headerMessage: 'Вход в систему',
    usePhoneLogin: true,
    useEmailLogin: false,
    usePasswordLogin: false,
    textEnterPhone: 'Введите номер телефона',
    textSendSms: 'Отправить код',
    loginSuccessful: (context, parameter) {
      ScaffoldMessenger.of(context).showSnackBar(
        SnackBar(content: Text('Успешный вход!')),
      );
    },
  ),
)

Поддержка #

Лицензия #

Этот проект лицензирован под MIT License - см. файл LICENSE для деталей.

Версии #

Текущая версия: 1.0.0-beta.1

Для информации об изменениях между версиями см. CHANGELOG.md.

0
likes
90
points
50
downloads

Publisher

unverified uploader

Weekly Downloads

Визуальные компоненты для авторизации и регистрации пользователей в приложениях NSG. Поддерживает вход по телефону, email и паролю с SMS-верификацией.

Topics

#authentication #login #ui #widget #form

Documentation

API reference

License

BSD-3-Clause (license)

Dependencies

flutter, flutter_multi_formatter, get, hovering, nsg_controls, nsg_data, shared_preferences

More

Packages that depend on nsg_login