canducci / recaptcha

Canducci Recaptcha

v1.0.1 2016-01-07 12:11 UTC

This package is auto-updated.

Last update: 2024-08-29 04:14:08 UTC


README

CANDUCCI RECAPTCHA

CANDUCCI RECAPTCHA

Build Status Packagist Packagist Packagist Packagist Packagist

快速开始

必要设置

composer.json 文件的 require 键中添加以下内容

"canducci/recaptcha": "1.0.*" 

运行 Composer 更新命令

$ composer update

在您的 config/app.php 中添加 providers 数组

'providers' => array(
    ...,    
    Canducci\ReCaptcha\Providers\ReCaptchaServiceProvider::class,
),

config/app.php 文件末尾添加一个 aliases (外观) 到数组中

'aliases' => array(
    ...,    
    'ReCaptcha' => Canducci\ReCaptcha\Facades\ReCaptcha::class,
),

运行 Artisan 命令

php artisan vendor:publish --force --provider="Canducci\ReCaptcha\Providers\ReCaptchaServiceProvider"

config/recaptcha.php 中添加 Google ReCaptchasite_keysecret_key (https://www.google.com/recaptcha/intro/index.html).

### 使用

视图中的 Blade

<head></head> 标签中添加 @recaptchascript() blade,例如

<!DOCTYPE html>
<html>
    <head>
    <tile>ReCaptcha Test</tile>
    @recaptchascript()
    </head>

<form></form> 标签中添加 @recaptcha() blade,例如

<form action="/v" method="post">
    <input type="hidden" name="_token" value="{{ csrf_token() }}">
    @recaptcha()
    <button type="submit">Send</button>
</form>

视图中的变量

控制器

public function index1()
{
    return view('index1')
        ->with('script', recaptcha_script())
        ->with('captcha', recaptcha_render());
}

HTML

<!DOCTYPE html>
<html>
<head>
    <tile>ReCaptcha Test</tile>
    {!! $script !!}

<form action="/v" method="post">
    <input type="hidden" name="_token" value="{{ csrf_token() }}">
    {!! $captcha !!}
    <button type="submit">Send</button>
</form>

验证 g-recaptcha-response 是否有效?

使用命名空间

use App\Http\Requests\ReCaptchaRequest;
use Canducci\ReCaptcha\ReCaptcha;
  1. 使用 ReCaptchaRequest,例如
public function post(ReCaptchaRequest $request, ReCaptcha $re)
{
    
}
  1. 在方法中,例如
public function v(Request $request, ReCaptcha $re)
{    
 
    $valid = $re->valid($request->get('g-recaptcha-response'));
    
    if ( $valid->success() )
    {
        //success
    }
    else
    {
        //not valid
        var_dump( $valid->errors() );
    }
}

### 标签的设置可以如下

  1. 函数
$script = recaptcha_script(Canducci\ReCaptcha\ReCaptchaScriptRender::Onload, 
                           Canducci\ReCaptcha\ReCaptchaScriptLanguage::Armenian, 
                           'function_CallBack');
                           
$render = recaptcha_render(Canducci\ReCaptcha\ReCaptchaRenderTheme::Ligth, 
                           Canducci\ReCaptcha\ReCaptchaRenderDataType::Image, 
                           Canducci\ReCaptcha\ReCaptchaRenderDataSize::Normal, 
                           0, 
                           'function_CallBack', 
                           'function_dataExpiredCallBack');
  1. 外观
use `Canducci\ReCaptcha\Facades\ReCaptcha as ReCaptchaFacade`
$script = ReCaptchaFacade::script(Canducci\ReCaptcha\ReCaptchaScriptRender::Onload, 
                                  Canducci\ReCaptcha\ReCaptchaScriptLanguage::Armenian, 
                                  'function_CallBack');
                                  
$render = ReCaptchaFacade::render(Canducci\ReCaptcha\ReCaptchaRenderTheme::Ligth, 
                                  Canducci\ReCaptcha\ReCaptchaRenderDataType::Image, 
                                  Canducci\ReCaptcha\ReCaptchaRenderDataSize::Normal, 
                                  0, 
                                  'function_CallBack', 
                                  'function_dataExpiredCallBack');
  1. Blade
@recaptchascript(Canducci\ReCaptcha\ReCaptchaScriptRender::Onload, 
                 Canducci\ReCaptcha\ReCaptchaScriptLanguage::Armenian,
                 'function_CallBack')

@recaptcha(Canducci\ReCaptcha\ReCaptchaRenderTheme::Ligth, 
           Canducci\ReCaptcha\ReCaptchaRenderDataType::Image, 
           Canducci\ReCaptcha\ReCaptchaRenderDataSize::Normal, 
           0, 
           'function_CallBack', 
           'function_dataExpiredCallBack')

注意: 这些设置不是强制性的,但如果需要,可以按照 Google 网站的教程进行设置。