Added the ability to enable captcha when logging in.
This commit is contained in:
		| @@ -6,6 +6,12 @@ APP_URL=http://localhost | ||||
|  | ||||
| APP_FORCE_HTTPS=false | ||||
|  | ||||
| APP_CAPTCHA=false | ||||
| CAPTCHA_API_DOMAIN=http://your-domain-captcha-or-IP:8081 | ||||
| CAPTCHA_PRIVATE_TOKEN= | ||||
| CAPTCHA_STATIC_PATH=http://your-domain-captcha-or-IP:8081/captcha | ||||
| CAPTCHA_PUBLIC_TOKEN= | ||||
|  | ||||
| APP_DEMO_MODE=false | ||||
| APP_DEMO_EMAIL= | ||||
| APP_DEMO_PASSWORD= | ||||
|   | ||||
| @@ -19,7 +19,9 @@ final class AuthController extends Controller | ||||
| 
 | ||||
|     public function login(): View | ||||
|     { | ||||
|         return view('public/login'); | ||||
|         return view('public/login', [ | ||||
|             'captcha' => config('app.captcha', false) | ||||
|         ]); | ||||
|     } | ||||
| 
 | ||||
|     public function authorization(AuthorizationRequest $request): RedirectResponse | ||||
|   | ||||
| @@ -13,11 +13,17 @@ final class AuthorizationRequest extends FormRequest implements FormRequestDto | ||||
|      */ | ||||
|     public function rules(): array | ||||
|     { | ||||
|         return [ | ||||
|         $rules = [ | ||||
|             'email' => ['required', 'email', 'max:255'], | ||||
|             'password' => ['required', 'min:3'], | ||||
|             'remember' => ['nullable', 'boolean'], | ||||
|         ]; | ||||
| 
 | ||||
|         if (config('app.captcha', false)) { | ||||
|             $rules['captcha-verified'] = ['captcha']; | ||||
|         } | ||||
| 
 | ||||
|         return $rules; | ||||
|     } | ||||
| 
 | ||||
|     public function getDto(): Authorization | ||||
|   | ||||
| @@ -7,6 +7,7 @@ | ||||
|     "require": { | ||||
|         "php": "^8.3", | ||||
|         "guzzlehttp/guzzle": "^7.2", | ||||
|         "kor-elf/captcha-rule-for-laravel": "^1.0", | ||||
|         "laravel/framework": "^11.0", | ||||
|         "laravel/sanctum": "^4.0", | ||||
|         "laravel/tinker": "^2.8" | ||||
|   | ||||
							
								
								
									
										52
									
								
								app/application/composer.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										52
									
								
								app/application/composer.lock
									
									
									
										generated
									
									
									
								
							| @@ -4,7 +4,7 @@ | ||||
|         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", | ||||
|         "This file is @generated automatically" | ||||
|     ], | ||||
|     "content-hash": "680bb583053c6714b7b932ef1d099191", | ||||
|     "content-hash": "94e26ab4b33fa6f72cca1475dace5690", | ||||
|     "packages": [ | ||||
|         { | ||||
|             "name": "brick/math", | ||||
| @@ -1045,6 +1045,56 @@ | ||||
|             ], | ||||
|             "time": "2023-12-03T19:50:20+00:00" | ||||
|         }, | ||||
|         { | ||||
|             "name": "kor-elf/captcha-rule-for-laravel", | ||||
|             "version": "1.0.1", | ||||
|             "source": { | ||||
|                 "type": "git", | ||||
|                 "url": "https://git.kor-elf.net/kor-elf/captcha-rule-for-laravel", | ||||
|                 "reference": "b2c9242d51059bcd4275da6544134d8f28f08750" | ||||
|             }, | ||||
|             "require": { | ||||
|                 "guzzlehttp/guzzle": "^7.0.1", | ||||
|                 "illuminate/support": "^10.0|^11.0", | ||||
|                 "php": "^8.2" | ||||
|             }, | ||||
|             "type": "library", | ||||
|             "extra": { | ||||
|                 "laravel": { | ||||
|                     "providers": [ | ||||
|                         "korElf\\CaptchaRuleForLaravel\\CaptchaProvider" | ||||
|                     ] | ||||
|                 } | ||||
|             }, | ||||
|             "autoload": { | ||||
|                 "files": [ | ||||
|                     "src/helpers.php" | ||||
|                 ], | ||||
|                 "psr-4": { | ||||
|                     "korElf\\CaptchaRuleForLaravel\\": "src/" | ||||
|                 } | ||||
|             }, | ||||
|             "notification-url": "https://packagist.org/downloads/", | ||||
|             "license": [ | ||||
|                 "MIT" | ||||
|             ], | ||||
|             "authors": [ | ||||
|                 { | ||||
|                     "name": "Leonid Nikitin", | ||||
|                     "email": "i@kor-elf.net", | ||||
|                     "homepage": "https://git.kor-elf.net/kor-elf", | ||||
|                     "role": "Developer" | ||||
|                 } | ||||
|             ], | ||||
|             "description": "Validation Rule Captcha for Laravel", | ||||
|             "homepage": "https://git.kor-elf.net/kor-elf/captcha-rule-for-laravel", | ||||
|             "keywords": [ | ||||
|                 "captcha", | ||||
|                 "laravel", | ||||
|                 "validation" | ||||
|             ], | ||||
|             "time": "2024-04-02T17:36:12+00:00" | ||||
|         }, | ||||
|         { | ||||
|             "name": "laravel/framework", | ||||
|             "version": "v11.5.0", | ||||
|   | ||||
| @@ -42,6 +42,15 @@ return [ | ||||
|     'demo_email' => env('APP_DEMO_EMAIL', false), | ||||
|     'demo_password' => env('APP_DEMO_PASSWORD', false), | ||||
| 
 | ||||
|     /* | ||||
|     |-------------------------------------------------------------------------- | ||||
|     | Сaptcha | ||||
|     |-------------------------------------------------------------------------- | ||||
|     | | ||||
|     | Enables or disables captcha. | ||||
|     */ | ||||
|     'captcha' => (bool) env('APP_CAPTCHA', false), | ||||
| 
 | ||||
|     /* | ||||
|     |-------------------------------------------------------------------------- | ||||
|     | Application Debug Mode | ||||
|   | ||||
| @@ -142,6 +142,7 @@ return [ | ||||
|     'url'                  => 'The :attribute format is invalid.', | ||||
|     'uuid'                 => 'The :attribute must be a valid UUID.', | ||||
|     'no_type'              => 'The :attribute can only use: :type.', | ||||
|     'captcha'              => 'Failed to pass human verification.', | ||||
|     'attributes'           => [ | ||||
|         'address'                  => 'address', | ||||
|         'age'                      => 'age', | ||||
|   | ||||
| @@ -142,6 +142,7 @@ return [ | ||||
|     'url'                  => 'Значение поля :attribute имеет ошибочный формат URL.', | ||||
|     'uuid'                 => 'Значение поля :attribute должно быть корректным UUID.', | ||||
|     'no_type'              => 'Значение поля :attribute может использовать только: :type.', | ||||
|     'captcha'              => 'Не удалось пройти проверку человеком.', | ||||
|     'attributes'           => [ | ||||
|         'address'                  => 'адрес', | ||||
|         'age'                      => 'возраст', | ||||
|   | ||||
| @@ -50,6 +50,11 @@ | ||||
|                                 </label> | ||||
|                             </div> | ||||
|                         </div> | ||||
|                         @if($captcha) | ||||
|                             <div class="form-group mb-4"> | ||||
|                                 @captcha | ||||
|                             </div> | ||||
|                         @endif | ||||
|                     </div> | ||||
|                     <div class="d-grid"> | ||||
|                         <button type="submit" class="btn btn-gray-800">{{ __('Sign in') }}</button> | ||||
|   | ||||
| @@ -48,32 +48,32 @@ RUN apk --no-cache add pcre2 libbz2 libpng libwebp libjpeg-turbo icu-libs freety | ||||
|     && ln -sf /dev/stdout /var/log/unit.log \ | ||||
|     && addgroup -S unit && adduser -S unit -G unit | ||||
|  | ||||
| #FROM BUILD as APP_BUILD_FOR_PRODUCTION | ||||
| #WORKDIR /home/app | ||||
| # | ||||
| #COPY application /home/app | ||||
| # | ||||
| #RUN apk --no-cache add git nodejs npm \ | ||||
| #    && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \ | ||||
| #    && composer install --optimize-autoloader --no-dev \ | ||||
| #    && npm install && npm run build \ | ||||
| #    && rm -rf /home/app/node_modules /home/app/.env | ||||
| # | ||||
| # | ||||
| #FROM BUILD AS PRODUCTION | ||||
| # | ||||
| #COPY --from=APP_BUILD_FOR_PRODUCTION /home/app /var/www/html | ||||
| #COPY docker/docker-entrypoint_prod.sh /home/unit/docker-entrypoint.sh | ||||
| # | ||||
| #WORKDIR /var/www/html | ||||
| # | ||||
| #RUN chmod 755 /home/unit/docker-entrypoint.sh | ||||
| # | ||||
| #STOPSIGNAL SIGTERM | ||||
| # | ||||
| #ENTRYPOINT ["/home/unit/docker-entrypoint.sh"] | ||||
| #EXPOSE 9000 | ||||
| #CMD ["unitd", "--no-daemon", "--control", "unix:/var/run/control.unit.sock", "--user", "unit", "--group", "unit"] | ||||
| FROM BUILD as APP_BUILD_FOR_PRODUCTION | ||||
| WORKDIR /home/app | ||||
|  | ||||
| COPY application /home/app | ||||
|  | ||||
| RUN apk --no-cache add git nodejs npm \ | ||||
|     && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \ | ||||
|     && composer install --optimize-autoloader --no-dev \ | ||||
|     && npm install && npm run build \ | ||||
|     && rm -rf /home/app/node_modules /home/app/.env | ||||
|  | ||||
|  | ||||
| FROM BUILD AS PRODUCTION | ||||
|  | ||||
| COPY --from=APP_BUILD_FOR_PRODUCTION /home/app /var/www/html | ||||
| COPY docker/docker-entrypoint_prod.sh /home/unit/docker-entrypoint.sh | ||||
|  | ||||
| WORKDIR /var/www/html | ||||
|  | ||||
| RUN chmod 755 /home/unit/docker-entrypoint.sh | ||||
|  | ||||
| STOPSIGNAL SIGTERM | ||||
|  | ||||
| ENTRYPOINT ["/home/unit/docker-entrypoint.sh"] | ||||
| EXPOSE 9000 | ||||
| CMD ["unitd", "--no-daemon", "--control", "unix:/var/run/control.unit.sock", "--user", "unit", "--group", "unit"] | ||||
|  | ||||
|  | ||||
| FROM BUILD AS DEVELOP | ||||
| @@ -105,7 +105,8 @@ FROM BUILD AS COMPOSER | ||||
| WORKDIR /var/www/html | ||||
| STOPSIGNAL SIGTERM | ||||
| RUN apk --no-cache add git \ | ||||
|     && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer | ||||
|     && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \ | ||||
|     && mkdir /.composer && chmod 0777 /.composer | ||||
| ENTRYPOINT ["composer"] | ||||
|  | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user