UndefinedOffset / silverstripe-nocaptcha

A spam protector and form field using Google's reCAPTCHA v2 or optionally a foundation v3 implementation
BSD 3-Clause "New" or "Revised" License
31 stars 37 forks source link

New "invisible" captcha option not working #26

Closed Codesesh closed 7 years ago

Codesesh commented 7 years ago

Hi there,

According to the docs we should be able to use the new "invisible" captcha from google. Is this the case? I have a stackoverflow question started here that has more details: http://stackoverflow.com/questions/43200694/how-to-implement-the-new-invisible-recaptcha-on-form

Cheers, Kieran

UndefinedOffset commented 7 years ago

It should work, make sure your default size is set to invisible. I added support not too long ago, try adding the below in your config also make sure your key is setup for the invisible captcha or you will get an error from the recaptcha api. Let me know if that works. Also there is no tag with support at the moment.

NocaptchaField:
    default_size: "invisible"
Codesesh commented 7 years ago

@UndefinedOffset - Yip I had gotten an invisible key, I tried a new invisible key and a normal key just before and both show the captcha whilst using default_size: "invisible" - no errors came up...

Does it hide the captcha for you?

This is my _config/config.yml

FormSpamProtectionExtension:
  default_spam_protector: NocaptchaProtector
NocaptchaField:
  site_key: "InvisibleKeyFromGoogle" #Your site key (required)
  secret_key: "InvisibleKeyFromGoogle" #Your secret key (required)
  verify_ssl: true #Allows you to disable php-curl's SSL peer verification by setting this to false (optional, defaults to true)
  default_theme: "light" #Default theme color (optional, light or dark, defaults to light)
  default_type: "image" #Default captcha type (optional, image or audio, defaults to image)
  default_size: "invisible" #Default size (optional, normal, compact or invisible, defaults to normal)
  proxy_server: "" #Your proxy server address (optional)
  proxy_auth: "" #Your proxy server authentication information (optional)
UndefinedOffset commented 7 years ago

it does for me, it should show the recaptcha logo on the right side, when you hover over that it should look like the following. I've tagged 0.3.0 make sure you are using that tag (or the latest master), if it's still not working what version of SilverStripe are you using? Could you post your composer.lock file? screen shot 2017-04-06 at 09 55 56

Codesesh commented 7 years ago

@UndefinedOffset - Ok just doubled checked, apologies I was using an older version. Have updated to 0.3.0 now and it is now not showing the captcha as expected. Buttt when you fill out the form and submit it is now asking to "Please answer the captcha, if you do not see the captcha please enable JavaScript"

image

UndefinedOffset commented 7 years ago

Ok pretty sure I have it fixed now can you try dev-master in your site and see if it works now? Seems to for me, it looks like the callback option has become required with the invisible captcha which I did not know.

Codesesh commented 7 years ago

Perfect, seems to be working now. I was looking through the API and see there is an option to change the position of the reCaptcha badge (logo), I have created a .patch file with the changes to get this to work, are you able to implement into the module? https://ufile.io/ca12d1

UndefinedOffset commented 7 years ago

Best way would be to submit a pull request with the changes then I can merge it easily :). I can do that but this way you'll get credit ;)