LaravelPackages.net
Acme Inc.
Toggle sidebar
lambda-studio/turnstile

317
1
2.1.1
About lambda-studio/turnstile

lambda-studio/turnstile is a Laravel package. It currently has 1 GitHub stars and 317 downloads on Packagist (latest version 2.1.1). Install it with composer require lambda-studio/turnstile. Discover more Laravel packages by lambda-studio or browse all Laravel packages to compare alternatives.

Last updated

Turnstile (Cloudflare Captcha)

Quick and easy implementation of Turnstile for Laravel.

Example request validation

Route::post('/test', function (Request $request) {
    $request->validate([
        'cf-turnstile-response' => [
          'required',
          'string',
          app(\LambdaStudio\Turnstile\Rules\ValidTurnstile::class),
        ],
    ]);

    dd($request->input('name'));
});

Just apply the rule to the cf-turnstile-response field.

Example frontend implementation

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>

<body>
  <form method="POST" action="{{ url('/test') }}">
    @csrf
    <input type="text" name="name" placeholder="Name">
    <div class="cf-turnstile" data-sitekey="{{ config('turnstile.site_key') }}"></div>
    <input type="submit" value="Submit">
  </form>
  <ul>
    @foreach ($errors->all() as $error)
      <li>{{ $error }}</li>
    @endforeach
  </ul>
  <script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script>
</body>

</html>

Todo

  • [ ] Add blade macros
    • [ ] @turnstile(): Adds the turnstile division with the site_key on it.
    • [ ] @turnstyleScript(): Adds the turnstile script tag.
Comments