This bundle provides authentication based on the response from Cloudflare Turnstile.
- The following parameters are required for bundle configuration in the
./config/packages/cf_turnstile_authenticator.yamlfile:
cf_turnstile_authenticator:
secret_key: '%env(string:CF_TURNSTILE_AUTHENTICATOR_SECRET_KEY)%'- add the
CF_TURNSTILE_AUTHENTICATOR_SECRET_KEYenvironment variable to the.envfile with a dummy secret key - add the
CF_TURNSTILE_AUTHENTICATOR_SECRET_KEYenvironment variable to the.env.localfile with the secret key from Cloudflare Turnstile
- Run the following command to install the bundle:
composer require nuvola/cloudflare-turnstile-authenticator-bundle- add the bundle to the
./config/bundles.phpfile:
<?php
// ...
Nuvola\CloudflareTurnstileAuthenticatorBundle\CloudflareTurnstileAuthenticatorBundle::class => ['all' => true],
// ...- to use the bundle, add the following code to the
./config/packages/security.yamlfile:
security:
# ...
firewalls:
# ...
# adjust the name and pattern to your application!
public:
pattern: ^/api/public/
stateless: true
custom_authenticators:
- Nuvola\CloudflareTurnstileAuthenticatorBundle\Security\CloudflareTurnstileAuthenticator
# ...
access_control:
- { path: ^/api/public/, roles: IS_AUTHENTICATED_FULLY }
# ...After adding this configuration, only authenticated by response token from the Cloudflare Turnstile will be passed.
curl -H "x-cf-turnstile-response: $RESPONSE" https://api.nuvola.pl/api/public/users/7ff847d9-a2e0-4f93-9c00-b59ecd51a766- $RESPONSE is a variable that stores the token retrieved in the web browser