All Projects → matt-west → craft-recaptcha

matt-west / craft-recaptcha

Licence: MIT, MIT licenses found Licenses found MIT LICENSE MIT LICENSE.md
Integrate Google’s reCAPTCHA into your web forms.

Programming Languages

PHP
23972 projects - #3 most used programming language
Twig
543 projects

Projects that are alternatives of or similar to craft-recaptcha

craft-json-snippets
Helps make CraftCMS models in .json
Stars: ✭ 17 (+6.25%)
Mutual labels:  craftcms, craft-plugin, craftcms-plugin
craft-react
Client and Server-side React rendering for CraftCMS
Stars: ✭ 40 (+150%)
Mutual labels:  craftcms, craft-plugin, craftcms-plugin
craft-entry-instructions
A simple fieldtype to add instructions.
Stars: ✭ 16 (+0%)
Mutual labels:  craftcms, craft-plugin, craftcms-plugin
tablemaker
A user-definable table field type for Craft CMS
Stars: ✭ 39 (+143.75%)
Mutual labels:  craftcms, craft-plugin, craftcms-plugin
Craft-User-Manual
📚 Help Section Plugin for Craft CMS.
Stars: ✭ 86 (+437.5%)
Mutual labels:  craftcms, craft-plugin, craftcms-plugin
craft-entriessubset
Craft field type plugin that extends the core Entries field type to give extra settings
Stars: ✭ 27 (+68.75%)
Mutual labels:  craftcms, craft-plugin, craftcms-plugin
SecureAssetDownload
Craft CMS plugin for secure asset download URLs
Stars: ✭ 22 (+37.5%)
Mutual labels:  craftcms, craft-plugin, craftcms-plugin
overflow.craft-plugin
A plain text Craft field type, with a soft or hard character limit.
Stars: ✭ 13 (-18.75%)
Mutual labels:  craftcms, craft-plugin, craftcms-plugin
craft-donkeytail
A Craft CMS fieldtype for content managing points on images.
Stars: ✭ 53 (+231.25%)
Mutual labels:  craftcms, craft-plugin, craftcms-plugin
smartdown.craft-plugin
Bringing the unbridled joy of Markdown Extra and Smartypants to your Craft websites.
Stars: ✭ 26 (+62.5%)
Mutual labels:  craftcms, craft-plugin, craftcms-plugin
craft-audit
Audit log for Craft 3
Stars: ✭ 18 (+12.5%)
Mutual labels:  craftcms, craft-plugin, craftcms-plugin
Craft-Twig-ImageBase64
A simple Twig extension for Craft CMS to create base64-encoded images from Assets in your Twig templates.
Stars: ✭ 14 (-12.5%)
Mutual labels:  craftcms, craft-plugin, craftcms-plugin
oembed
A simple plugin to extract media information from websites, like youtube videos, twitter statuses or blog articles.
Stars: ✭ 34 (+112.5%)
Mutual labels:  craftcms, craft-plugin
Similar-Craft
Find similar elements
Stars: ✭ 32 (+100%)
Mutual labels:  craftcms, craftcms-plugin
PowerNap
Sample Task plugin
Stars: ✭ 15 (-6.25%)
Mutual labels:  craftcms, craft-plugin
tags
A tag manager for Craft 3
Stars: ✭ 23 (+43.75%)
Mutual labels:  craftcms, craftcms-plugin
store-hours
Manage business hours with Craft CMS.
Stars: ✭ 60 (+275%)
Mutual labels:  craftcms, craft-plugin
like
Let your users like your Craft website's entries, assets and any other element.
Stars: ✭ 44 (+175%)
Mutual labels:  craftcms, craft-plugin
craft3-fallback-site
Failing requests in a multi-site install can fall back to other sites, to prevent 404 errors from missing or disabled entries.
Stars: ✭ 14 (-12.5%)
Mutual labels:  craftcms, craftcms-plugin
craft-plugin-doxter
Markdown Editor and Advanced Parser for Craft CMS
Stars: ✭ 23 (+43.75%)
Mutual labels:  craftcms, craftcms-plugin

Craft reCAPTCHA plugin for Craft CMS 3.x

Integrate Google’s reCAPTCHA into your forms. Includes support for the CraftCMS Contact Form plugin.

Requirements

This plugin requires Craft CMS 3.1 or later.

This plugin supports reCAPTCHA v2 only.

Installation

To install the plugin, follow these instructions.

  1. Open your terminal and go to your Craft project:

     cd /path/to/project
    
  2. Then tell Composer to load the plugin:

     composer require matt-west/craft-recaptcha
    
  3. In the Control Panel, go to Settings → Plugins and click the “Install” button for Craft reCAPTCHA.

Configuring Craft reCAPTCHA

  1. Sign up for reCAPTCHA API key.
  2. Open the Craft admin and go to Settings → Plugins → Craft reCAPTCHA → Settings.
  3. Add your site key and secret key, then save.
  4. Add the reCAPTCHA template tag to your forms. (see next section)

If you’re using the CraftCMS Contact Form plugin, everything is already set up for you.

Verify the reCAPTCHA

To verify the reCAPTCHA is valid, pass the reCAPTCHA response from the g-recaptcha-response param to the verify() method on CraftRecaptcha::$plugin->craftRecaptchaService.

// Get the reCAPTCHA response code to validate.
$captcha = Craft::$app->getRequest()->getParam('g-recaptcha-response');

// Pass the response code to the verification service.
$validates = CraftRecaptcha::$plugin->craftRecaptchaService->verify($captcha);

if ($validates) {
  // All good! the reCAPTCHA is valid.
} else {
  // The reCAPTCHA is invalid.
}

Or alternatively, use the in-built verification controller action to verify the request before forwarding it on to the intended action.

For example, the following fields would verify the reCAPTCHA and then pass the request to the login controller action:

<input type="hidden" name="action" value="recaptcha/recaptcha/verify-submission">
<input type="hidden" name="verified-action" value="users/login">
{{ craft.recaptcha.render() }}

Set the action field to be recaptcha/recaptcha/verify-submission and the verified-action field to be the intended controller action you want to trigger. This will forward all other fields and parameters to the intended controller action.

Automated testing and reCAPTCHA

If you need to run automated tests against your forms use the following keys. Verification requests using these credentials will always pass.

Site key: 6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI Secret key: 6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe

Documentation

Using Craft reCAPTCHA

Add the following tag to your form where you’d like the reCAPTCHA to be displayed.

{{ craft.recaptcha.render() }}

Render parameters per the documentation are injectable to the render() function, e.g.

{{ craft.recaptcha.render({
  theme: 'dark',
  size: 'compact'
}) }}

You can also create the reCAPTCHA element yourself using the sitekey template variable. This is especially useful for implementing invisible recaptcha.

<div class="g-recaptcha"
      data-sitekey="{{ craft.recaptcha.sitekey }}"
      data-callback="onSubmit"
      data-size="invisible">
</div>

Brought to you by Matt West

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].