petefox/recaptcha-laravel

此包已弃用,不再维护。未建议替代包。

用于在Laravel中添加和验证Recaptcha字段的简单包

1.0.0 2015-06-14 01:26 UTC

This package is not auto-updated.

Last update: 2021-09-04 00:57:59 UTC


README

这是一个非常简单的库,使将最新的recaptcha机制集成到Laravel变得简单。

安装

只需使用composer,例如。

composer require peterfox/recaptcha-laravel

实现(Laravel 5.0/5.1)

首先在config文件夹中创建一个名为"recaptcha.php"的配置文件,包含

<?php

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

然后只需将正确的详细信息添加到项目中.env文件

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

现在将服务提供者添加到config文件夹中的应用配置中

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

然后也将外观添加到应用配置中

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

使用表单字段和验证器

使用的基本方法如下,在您的表单中(以下示例使用Blade,但应适用于原始PHP)只需简单使用外观

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

这将输出基本字段。

然后在您的表单验证器中简单地使用recaptcha验证器。以下是一个示例,展示了如何在请求对象中使用验证器。

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',
        ];
    }

}

在示例中,我使其在非“测试”环境中提供 g-recaptcha-response 字段,这是因为如果您正在使用像Behat这样的集成测试,那么如果启用了recaptcha验证并且同时Recaptcha检查机器人,测试将总是失败。在测试环境中使用此机制最多是问题。

测试

安装后,可以使用以下命令快速运行PHPSpec测试

vendor/phpspec/phpspec/bin/phpspec run

许可

由Peter Fox创建,并使用MIT开源许可证提供