stefan-z/laravel-sanctum-captcha
为无状态的 Laravel Sanctum API 创建验证码图像
0.0.6
2023-10-29 14:05 UTC
Requires
- php: ^8.2
README
此项目是为那些已经实施基于 Laravel-Sanctum 的 API 而没有使用基于状态会话的临时存储可能性,并且希望简单地创建验证码图像(例如,用于他们的登录过程)的人准备的。
基本思想是向用户提供一张图片和加密文本。一旦在您的网站上显示该图片,用户必须提交一个输入并提供给您加密文本。然后,您的服务器端实现可以接收这两个输入,并使用与创建验证码时相同的类和密钥(用于验证码)来验证用户输入是否确实是显示的验证码。
以下属性可以通过简单的 Builder-Interface 设置
- 密钥
- 加密算法(默认为 aes-128-cbc)
- 验证码长度
- 背景颜色
- TTF 字体
- 行数
- 点数
示例
$captcha = (new SecureImage(env('CAPTCHA_SECRET')))
->setFont(__DIR__
. DIRECTORY_SEPARATOR . '..'
. DIRECTORY_SEPARATOR . '..'
. DIRECTORY_SEPARATOR . '..'
. DIRECTORY_SEPARATOR . 'resources'
. DIRECTORY_SEPARATOR . 'fonts'
. DIRECTORY_SEPARATOR . 'arial.ttf')
->setNumberOfLines(20) // Random Lines for obfuscation
->setNumberOfDots(800) // Random Dots for obfuscation
->setBackground(150, 150, 150, 0.4) // RGBA
->setLength(7) // Captcha-Length
->setWidth(200) // Image Width
->setHeight(100); // Image Height
return $captcha->generateCaptcha();
$captcha = new SecureImage(env('CAPTCHA_SECRET'));
return $captcha->is_valid($user_input, $cipher_text_generated_with_captcha);