1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/suninformation-ymate-module-captcha

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

YMATE-MODULE-CAPTCHA

Основывающийся на YMP фреймворк, модуль для реализации капчи (captcha), поддерживающий три типа проверки: картинка, электронная почта и SMS.

  • Характеристики:
    • поддержка трёх типов проверки;
    • возможность генерации многоцелевых кодов;
    • режим отладки, в котором SMS не отправляются;
    • определение необходимости ввода кода на основе заданных условий, например, после определённого количества запросов;
    • использование аннотации @VCaptcha для проверки, простота настройки и гибкость.

Maven пакет зависимостей

<dependency>
    <groupId>net.ymate.module</groupId>
    <artifactId>ymate-module-captcha</artifactId>
    <version>2.0.0</version>
</dependency>

Параметры конфигурации модуля

#-------------------------------------
# module.captcha 模块初始化参数
#-------------------------------------

# 是否 активировать модуль капчи (отключение игнорирует все параметры проверки капчи), значение по умолчанию: true
ymp.configs.module.captcha.enabled=

# включить режим отладки (в этом режиме код не отправляется через SMS, а выводится на консоль), значение по умолчанию: false
ymp.configs.module.captcha.dev_mode=

# активировать тип капчи, допустимые значения: ALL|DEFAULT|SMS|MAIL, значение по умолчанию: ALL
ymp.configs.module.captcha.captcha_types=

# класс провайдера модуля капчи, значение по умолчанию: net.ymate.module.captcha.impl.DefaultCaptchaProvider
ymp.configs.module.captcha.provider_class=

# пользовательский класс генератора токенов, значение по умолчанию пустое
ymp.configs.module.captcha.token_generator_class=

# класс адаптера хранилища капчи, значение по умолчанию: net.ymate.module.captcha.impl.DefaultCaptchaStorageAdapter
ymp.configs.module.captcha.storage_adapter_class=

# обработчик расширения области действия, обязательный при активации учёта ошибок, значение по умолчанию пустое
ymp.configs.module.captcha.scope_processor_class=

# провайдер отправки SMS или электронной почты, значение по умолчанию: net.ymate.module.captcha.impl.DefaultCaptchaSendProvider
ymp.configs.module.captcha.send_provider_class=

# установить лимит ошибок перед активацией капчи, значение по умолчанию 0 (капча не активируется при достижении лимита ошибок)
ymp.configs.module.captcha.need_captcha_wrong_times=

# префикс имени кэша, значение по умолчанию пустое
ymp.configs.module.captcha.cache_name_prefix=

# минимальная длина токена капчи, значение по умолчанию 4
ymp.configs.module.captcha.token_length_min=

# время ожидания токена, в секундах, значение по умолчанию пустое или меньше или равно 0, что означает отсутствие ограничения
ymp.configs.module.captcha.token_timeout=

# префикс запроса службы по умолчанию (не допускается начало или конец с '/'), значение по умолчанию пустое
ymp.configs.module.captcha.service_prefix=

# зарегистрировать службу по умолчанию, значение по умолчанию false
ymp.configs.module.captcha.service_enabled=

# высота, значение по умолчанию 70px
ymp.configs.module.captcha.height=

# ширина, значение по умолчанию 200px
ymp.configs.module.captcha.width=

# цвета переднего плана, значения RGB, например: 0,0,0|1,2,3, несколько цветов разделяются '|', значение по умолчанию случайное
ymp.configs.module.captcha.foregrounds=

# цвет фона, значение RGB, по умолчанию 255,255,255
ymp.configs.module.captcha.background=

# качество, возможные значения: min|default|max, значение по умолчанию max
ymp.configs.module.captcha.quality=

# коэффициент сжатия, значение от 0 до 1, значение по умолчанию пустое
ymp.configs.module.captcha.compress_ratio=

# формат изображения, возможные значения: png|jpeg, значение по умолчанию jpeg
ymp.configs.module.captcha.format=

# анализатор шрифтов капчи, класс анализатора, значение по умолчанию net.ymate.module.captcha.impl.DefaultCaptchaFontsParser
# если вы хотите загрузить шрифты из указанного файла, используйте: net.ymate.module.captcha.impl.FileCaptchaFontsParser
# или реализуйте интерфейс net.ymate.module.captcha.ICaptchaFontsParser для настройки способа загрузки
ymp.configs.module.captcha.fonts_parser_class=

# настраиваемые шрифты, параметры, формат: [имя шрифта:SansSerif],[стиль шрифта:plain|bold|italic], несколько шрифтов разделяются '|', значение по умолчанию случайно
# когда анализатор пользовательских шрифтов загружается из файла, формат конфигурации: [формат шрифта:type1|truetype],[стиль шрифта:plain|bold|italic],<путь к файлу:${root}/fonts/SansSerif.ttf>, несколько шрифтов разделяются '|'
ymp.configs.module.captcha.fonts=

# параметры эффекта изображения: масштабирование, диапазон значений: [0-1, 0-1], значение по умолчанию: 1,1
ymp.configs.module.captcha.effect.scale=

# параметры эффекта изображения: волны, значение по умолчанию true
ymp.configs.module.captcha.effect.ripple=

# параметры эффекта изображения: размытие, значение по умолчанию true
ymp.configs.module.captcha.effect.blur=

# параметры эффекта изображения: контур, значение по умолчанию false
ymp.configs.module.captcha.effect.outline=

# параметры эффекта изображения: вращение, значение по умолчанию true
ymp.configs.module.captcha.effect.rotate=

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

В среде Web, если service_enabled = true, модуль будет регистрировать контроллер капчи по умолчанию во время инициализации. Контроллер предоставляет следующие интерфейсы:

Получение изображения капчи

http://<ваш домен>/captcha?scope=<SCOPE>&type=<TYPE>

Параметры:

  • scope: идентификатор области, используемый для различения разных клиентов и диапазонов хранения данных, обязательный параметр;
  • type: принимает значения data|json, выводит изображение в кодировке Base64, необязательный параметр.

Отправка SMS-кода

http://<ваш домен>/captcha/sms_code?scope=<SCOPE>&mobile=<MOBILE>&captcha=<CAPTCHA>

Параметры:

  • scope: идентификатор области, используется для различения разных клиентов и диапазонов хранения данных, обязательный параметр;
  • mobile: номер мобильного телефона, обязательный параметр;
  • captcha: изображение капчи, полученное через http://<ваш домен>/captcha?scope=<SCOPE>. Ответ:
{ret: 0}
  • 0: отправка прошла успешно;
  • -1: ошибка проверки параметров;
  • -6: слишком частая отправка или другие сообщения;
  • -50: ошибка отправки. Отправка проверочного кода
http://<ваше_доменное_имя>/captcha/mail_code?scope=<SCOPE>&email=<EMAIL>&captcha=<CAPTCHA>

Описание параметров:

  • scope: идентификатор области действия, используется для различения разных клиентов и областей хранения данных, обязательный параметр;
  • email: адрес электронной почты, обязательный параметр;
  • captcha: проверочный код (получается через http://<ваше_доменное_имя>/captcha?scope=<SCOPE>).

Возвращаемое значение:

{ret: 0}
  • 0 означает успешную отправку;
  • -1 означает ошибку проверки параметров;
  • -6 означает слишком частую отправку или другое сообщение;
  • -50 означает сбой отправки.

Проверка правильности проверочного кода

http://<ваше_доменное_name>/captcha/match?scope=<SCOPE>&token=<TOKEN>&target=<TARGET>

Описание параметров:

  • scope: идентификатор области действия, используется для различения разных клиентов и областей хранения данных, обязательный параметр;
  • token: предварительно проверенное значение маркера, обязательный параметр;
  • target: при проверке телефона или электронной почты необходимо указать соответствующий номер телефона или адрес электронной почты.

Возвращаемое значение:

{ret: 0, matched: true|false}

Пример кода

Использование аннотации @VCaptcha для проверочных кодов

@RequestMapping(value = "/login", method = Type.HttpMethod.POST)
public IView login(@VCaptcha(invalid = true)
                   @RequestParam String captcha, // проверочный код

                   @VRequired
                   @VMobile
                   @RequestParam String mobile, // номер мобильного телефона

                   @VRequired
                   @RequestParam String scope, // идентификатор области действия для проверочного кода в виде SMS

                   @VRequired
                   @VCaptcha(type = ICaptcha.Type.MAIL, scopeName = "scope", targetName="mobile")
                   @RequestParam String smscode, // проверочный код в виде SMS

                   @VRequired
                   @RequestParam String passwd, // пароль для входа

                   @RequestParam(Optional.REDIRECT_URL) String redirectUrl) throws Exception {
    // ...... опущено
    return WebResult.success().toJsonView();
}

Вызов связанных с проверочными кодами методов

// Создание проверочного кода с областью действия user.login.xxx
String code = Captcha.get().generate("user.login.xxx");

// Уничтожение проверочного кода с областью действия user.login.xxx
Captcha.get().invalidate("user.login.xxx");

// Проверка того, включена ли поддержка пропуска проверки
Captcha.get().isWrongTimesEnabled();

// Определение того, можно ли пропустить проверку для проверочного кода по умолчанию с областью действия user.login.xxx
Captcha.get().isValidationNeedSkip(ICaptcha.Type.DEFAULT, "user.login.xxx");

// Сброс счётчика ошибок для проверочного кода по умолчанию с областью действия user.login.xxx
Captcha.get().resetWrongTimes(ICaptcha.Type.DEFAULT, "user.login.xxx");

// Проверка соответствия проверочного кода с областью действия user.login.xxx и его последующее отключение
Captcha.get().validate("user.login.xxx", code, true);

One More Thing

YMP не только предоставляет удобный опыт быстрой разработки для веб-проектов и других проектов на Java, но и постоянно предлагает более богатый опыт реализации проектов.

Заинтересованные друзья могут присоединиться к официальному QQ-чату: 480374360, чтобы общаться и учиться вместе, помогая YMP расти!

Если вам нравится YMP, мы надеемся получить вашу поддержку и поощрение!

Donation Code

Чтобы узнать больше о фреймворке YMP, посетите официальный сайт: https://ymate.net.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Модуль с кодом подтверждения, основанный на фреймворке YMP, поддерживает три типа верификации: изображение, электронная почта и SMS. Используется проверка с помощью аннотаций, конфигурация простая, гибкая и расширяемая. Развернуть Свернуть
Apache-2.0
Отмена

Обновления (2)

все

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/suninformation-ymate-module-captcha.git
git@api.gitlife.ru:oschina-mirror/suninformation-ymate-module-captcha.git
oschina-mirror
suninformation-ymate-module-captcha
suninformation-ymate-module-captcha
master