Captcha pada sebagian besar aplikasi web merupakan hal yang diperlukan untuk menghindari web kita diakses oleh robot. Pada laravel sebenarnya banyak paket captcha untuk laravel yang bisa diintegrasikan, ada yang sangat simpel tapi ada juga yang berbayar. Dari beberapa paket captcha untuk laravel saya akhirnya memilih laravel-captcha yang dimaintain oleh bonecms. Menurut saya sesuai dengan yang saya inginkan dan simpel untuk diimplementasikan.

1. Tambahkan pada file composer.json

{
    "require": {
        "bonecms/laravel-captcha": "1.*"
    },
}

2. Lalu edit file config/app.php untuk menambahkan provider :

'providers' => [
    ...
    "LaravelCaptcha\Providers\LaravelCaptchaServiceProvider"
],

3. Jalankan perintah composer update

4. Integrasikan ke dalam controller Anda.

 (new Captcha)->html()]);
    }

}

5. Lalu untuk menampilkan capctha pada view :

...
{!! $captcha !!}

 ...

6. Lalu untuk validasi pada method post :

 (new Captcha)->html()]);
    }

    public function postExample()
    {
        $code = Request::input('captcha');

        if ((new Captcha)->validate($code)) {
            // Validation passed
        } 
        else {
            // Validation failed
        }
    }

}

Dengan langkah-langkah diatas, kita sudah bisa menjalankan fungsi captcha semestinya. Namun kita bisa melakukan kustomisasi lebih lanjut dengan membuat file captcha.php didalam direktori config

dengan isi konfigurasi seperti ini :

 'DroidSerif',

    /*
    |--------------------------------------------------------------------------
    | Font size
    |--------------------------------------------------------------------------
    | Font size in pixels.
    | 
    |
    */
    'fontSize' => 26,

    /*
    |--------------------------------------------------------------------------
    | Letter spacing
    |--------------------------------------------------------------------------
    | Spacing between letters in pixels.
    |
    */
    'letterSpacing' => 2,

    /*
    |--------------------------------------------------------------------------
    | Code Length
    |--------------------------------------------------------------------------
    | You can specify an array or integer.
    |
    */
    'length' => [4, 5],

    /*
    |--------------------------------------------------------------------------
    | Displayed chars
    |--------------------------------------------------------------------------
    | Enter the different characters.
    |
    */
    'chars' => 'QSFHTRPAJKLMZXCVBNabdefhxktyzj23456789',

    /*
    |--------------------------------------------------------------------------
    | Image Size
    |--------------------------------------------------------------------------
    | Captcha image size can be controlled by setting the width 
    | and height properties.
    | 
    |
    */
    'width' => 180,
    'height' => 50,

    /*
    |--------------------------------------------------------------------------
    | Background Captcha
    |--------------------------------------------------------------------------
    | You can specify an array or string.
    |
    */
    'background' => 'f2f2f2',

    /*
    |--------------------------------------------------------------------------
    | Colors characters
    |--------------------------------------------------------------------------
    | You can specify an array or string.
    |
    */
    'colors' => '2980b9',

    /*
    |--------------------------------------------------------------------------
    | Scratches
    |--------------------------------------------------------------------------
    | The number of scratches displayed in the Captcha.
    |
    */
    'scratches' => 30,

    /*
    |--------------------------------------------------------------------------
    | Captcha style
    |--------------------------------------------------------------------------
    | Supported: "wave".
    |
    */
    'style' => 'wave',

    /*
    |--------------------------------------------------------------------------
    | Id of the Captcha code input textbox
    |--------------------------------------------------------------------------
    | After updating the Captcha focus will be set on an element with this id.
    |
    */
    'inputId' => 'captcha',

];

Tulisan Lain   Mendapatkan Struktur Path Pada Laravel

By alfach

Leave a Reply

Your email address will not be published. Required fields are marked *