env('CAPTCHA_ENABLED', false), /* |-------------------------------------------------------------------------- | Active driver |-------------------------------------------------------------------------- | Which provider to use: "hcaptcha", "turnstile", or "cap". Admin-selectable. | Defaults to hcaptcha so existing instances keep their current behavior. */ 'driver' => env('CAPTCHA_DRIVER', 'hcaptcha'), /* |-------------------------------------------------------------------------- | hCaptcha |-------------------------------------------------------------------------- */ 'hcaptcha' => [ 'secret' => env('CAPTCHA_H_SECRET', 'default_secret'), 'sitekey' => env('CAPTCHA_H_SITEKEY', 'default_sitekey'), 'timeout' => (int) env('CAPTCHA_H_TIMEOUT', 5), 'fail_open' => (bool) env('CAPTCHA_H_FAIL_OPEN', false), 'lang' => env('CAPTCHA_H_LANG'), // Optional widget locale (e.g. "fr"). Null uses hCaptcha auto-detection. ], /* |-------------------------------------------------------------------------- | Cloudflare Turnstile |-------------------------------------------------------------------------- */ 'turnstile' => [ 'sitekey' => env('CAPTCHA_TURNSTILE_SITEKEY'), 'secret' => env('CAPTCHA_TURNSTILE_SECRET'), 'timeout' => (int) env('CAPTCHA_TURNSTILE_TIMEOUT', 5), 'fail_open' => (bool) env('CAPTCHA_TURNSTILE_FAIL_OPEN', false), ], /* |-------------------------------------------------------------------------- | Cap |-------------------------------------------------------------------------- | The endpoint is the instance base URL WITHOUT the site key, e.g. | https://cap.example.com. The site key/secret are separate values; */ 'cap' => [ 'endpoint' => env('CAPTCHA_CAP_ENDPOINT'), 'sitekey' => env('CAPTCHA_CAP_SITEKEY'), 'secret' => env('CAPTCHA_CAP_SECRET'), 'token_field' => env('CAPTCHA_CAP_TOKEN_FIELD', 'cap-token'), 'timeout' => (int) env('CAPTCHA_CAP_TIMEOUT', 5), 'fail_open' => (bool) env('CAPTCHA_CAP_FAIL_OPEN', false), 'widget_version' => env('CAPTCHA_CAP_WIDGET_VERSION') ?: 'latest', ], /* |-------------------------------------------------------------------------- | Where captcha is active |-------------------------------------------------------------------------- | Per-surface toggles. Each requires the global "enabled" flag to also be on. */ 'active' => [ 'login' => env('CAPTCHA_ENABLED_ON_LOGIN', true), 'register' => env('CAPTCHA_ENABLED_ON_REGISTER', true), 'curated_register' => env('CAPTCHA_ENABLED_ON_CURATED_REGISTER', true), 'forgot_email' => env('CAPTCHA_ENABLED_ON_FORGOT_EMAIL', true), 'forgot_password' => env('CAPTCHA_ENABLED_ON_FORGOT_PASSWORD', true), 'password_reset' => env('CAPTCHA_ENABLED_ON_PASSWORD_RESET', true), ], ];