noylecorp / laravel-recaptcha
Google ReCAPTCHA服务的Laravel包
v0.4.1
2016-06-15 14:44 UTC
Requires
- php: >=5.5.9
- ext-curl: *
- illuminate/support: 5.1.*
- laravelcollective/html: 5.1.*
Requires (Dev)
- phpunit/phpunit: ~4.0
This package is not auto-updated.
Last update: 2024-09-28 17:43:54 UTC
README
Laravel Recaptcha
Laravel 5.1的Google reCAPTCHA包,提供创建reCAPTCHA字段和验证响应的服务。
注意: 此包使用reCAPTCHA API版本2.0
安装
使用composer安装Laravel Recaptcha
composer require noylecorp/laravel-recaptcha
接下来,将服务提供者添加到您的config/app.php
'providers' => [
// ...
Noylecorp\Recaptcha\RecaptchaServiceProvider::class,
]
接下来,将包配置文件发布到您的应用程序
php artisan vendor:publish --provider="Noylecorp\Recaptcha\RecaptchaServiceProvider"
文件recaptcha.php
被复制到您的配置目录。最终的安装步骤是将您的reCAPTCHA站点和密钥添加到您的.env
文件中
RECAPTCHA_SITE_KEY=your-site-key
RECAPTCHA_SECRET_KEY=your-secret-key
如果您没有reCAPTCHA密钥,可以在此处注册一对。
使用方法
创建reCAPTCHA小部件
使用recaptcha()
辅助函数轻松创建reCAPTCHA小部件
{!! recaptcha() !!}
// outputs...
<script src="https://www.google.com/recaptcha/api.js"></script>
<div class="g-recaptcha" data-sitekey="my-site-key"></div>
您也可以传递HTML属性...
{!! recaptcha(['id' => 'myrecaptcha']) !!}
...或reCAPTCHA的任何可用选项
{!! recaptcha(['theme' => 'dark']) !!}
{!! recaptcha(['data-theme' => 'dark']) !!} // same thing
如果您需要分别渲染reCAPTCHA小部件的<script>
和<div>
标签,可以使用recaptch_script()
和recaptcha_widget()
函数
{!! recaptcha_script() !!}
// ...
{!! recaptcha_widget() !!}
需要支持无JavaScript的用户?您还可以插入一个<noscript>
回退
{!! recaptcha() !!}
{!! recaptcha_noscript() !!}
或者,如果您不想使用任何辅助函数,可以使用recaptcha_site_key()
获取您自定义标记的站点密钥
<div class="g-recaptcha" data-sitekey="{{ recaptcha_site_key() }}"></div>
最后,如果您已安装LaravelCollective Html,所有辅助函数也可以通过Form
外观访问
{!! Form::recaptcha() !!}
验证reCAPTCHA响应
验证reCAPTCHA字段的最简单方法是使用添加的recaptcha
验证规则
// in a controller...
$this->validate($request, [
'g-recaptcha-response' => 'required|recaptcha'
]);
// in a form request...
public function rules()
{
return [
'g-recaptcha-response' => 'required|recaptcha'
];
}
或者,您可以直接访问服务进行手动验证
if (app('recaptcha')->verify($request->input('g-recaptcha-response'))) {
// user passed reCAPTCHA
}
else {
// user failed reCAPTCHA
}