定制 peterfox/recaptcha-laravel 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

peterfox/recaptcha-laravel

最新稳定版本:1.0.0

Composer 安装命令:

composer require peterfox/recaptcha-laravel

包简介

A simple package for adding and validating Recaptcha fields in Laravel

README 文档

README

This is a very simple library that makes integrating the latest recaptcha mechanism into Laravel.

Installing

Simply use composer e.g.

composer require peterfox/recaptcha-laravel

Implementing (Laravel 5.0/5.1)

Firstly create a config in the config folder called "recaptcha.php" containing:

<?php

return array(
    'site_key' => env('RECAPTCHA_SITE_KEY', ''),
    'secret' => env('RECAPTCHA_SECRET', ''),
);

Then just add the correct details to your .env file in the project:

RECAPTCHA_SITE_KEY=site key from recaptcha
RECAPTCHA_SECRET=your private secret from recaptcha

Now add the service provider to your app config in the config folder:

'providers' => [
	...
	'RecaptchaLaravel\Provider\RecaptchaServiceProvider'
]

And then add the Facade to your app config as well:

aliases' => [
	...
	'Recaptcha' => 'RecaptchaLaravel\Facade\RecaptchaFacade',
]

Using the form field and validator

The basics of using is as follows, in your form (example uses Blade but should work with raw PHP) just simply use the Facade:

{!! Recaptcha::field() !!}

This will output the basic field.

Then in your form validator simply use the recaptcha validator. Below you can see an example of the validator being put to use in a Request object.

class ExamleRequest extends Request {

	/**
	 * Determine if the user is authorized to make this request.
	 *
	 * @return bool
	 */
	public function authorize()
	{
		return true;
	}

	/**
	 * Get the validation rules that apply to the request.
	 *
	 * @return array
	 */
	public function rules()
	{
		$rules = [
			'content' => 'required',
		];

        if (!app()->environment('test')) {
            $rules['g-recaptcha-response'] = 'required|recaptcha';
        }

        return $rules;
	}

    /**
     * Set custom messages for validator errors.
     *
     * @return array
     */
    public function messages()
    {
        return [
            'g-recaptcha-response.required' => 'Please tick the check box next to "I\'m not a robot" to validate you\'re human',
            'g-recaptcha-response.recaptcha' => 'Robot detected',
        ];
    }

}

In the example you'll see I've made it that the g-recaptcha-response field is only provided when I'm not using the 'test' environment, this is because if you're doing integration tests with something like Behat they'll always fail if recaptcha validation is enabled and at the same time Recaptcha checks for bots so using this mechanism in a test environment would be problematic at best.

Tests

You can quickly run the PHPSpec tests with the following command after installing from composer

vendor/phpspec/phpspec/bin/phpspec run

License

This was created by Peter Fox and is provided under the MIT open source license

统计信息

  • 总下载量: 206
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2015-06-14