lambda-studio / turnstile
2.1.1
2023-12-09 00:08 UTC
Requires
- php: ^8.1
- illuminate/broadcasting: ^8.0|^9.0
- illuminate/contracts: ^8.0|^9.0
- illuminate/http: ^8.0|^9.0
- illuminate/support: ^8.0|^9.0
README
快速简单地实现 Laravel 的 Turnstile。
示例请求验证
Route::post('/test', function (Request $request) { $request->validate([ 'cf-turnstile-response' => [ 'required', 'string', app(\LambdaStudio\Turnstile\Rules\ValidTurnstile::class), ], ]); dd($request->input('name')); });
只需将规则应用到 cf-turnstile-response
字段。
示例前端实现
<!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>
待办事项
- 添加 blade 宏
- @turnstile(): 添加带有 site_key 的 turnstile 部分。
- @turnstyleScript(): 添加 turnstile 脚本标签。