Search packages, repositories and app categories

Package detailsv0.1.0

flutter_recaptcha_v2

A Flutter plugin for Google ReCaptcha V2.

30-day downloads
68
Likes
39
Pub points
15

Install package

flutter pub add flutter_recaptcha_v2

Package Overview

Package selection guidance compiled from public package information, community data, and project usage.

A Flutter plugin that integrates Google ReCaptcha V2 into mobile applications, enabling developers to add bot protection to forms and login flows. It provides a simple interface to render and verify reCAPTCHA challenges on both Android and iOS platforms. The plugin handles the underlying communication with Google's reCAPTCHA service, ensuring secure validation of user interactions. Designed for ease of use, it supports asynchronous verification and returns tokens for server-side validation.

Use cases

  • Protecting login forms from bots
  • Securing contact form submissions
  • Preventing automated account creation
  • Enhancing security in registration workflows
  • Validating user actions in sensitive operations

Key features

  • Simple integration with Flutter apps
  • Supports reCAPTCHA V2 invisible and normal types
  • Returns verification tokens for server validation
  • Cross-platform compatibility (Android & iOS)
  • Asynchronous verification workflow

Suitable for

  • Developers building secure authentication flows
  • Apps requiring bot protection on forms
  • Projects needing compliance with anti-abuse measures
  • Teams integrating Google's reCAPTCHA service into Flutter
  • Mobile apps with high risk of automated abuse

Considerations

  • Requires internet connection for reCAPTCHA verification
  • Server-side token validation is mandatory
  • May impact user experience if not implemented carefully
  • Depends on external Google service availability
  • Limited to reCAPTCHA V2, not V3 or newer versions

Original README

Original README snapshot from the linked source repository. Visit the repository for the latest content.

flutter_recaptcha_v2

A Flutter plugin for Google ReCaptcha V2.

Getting Started

This plugin requires Webview to use Google ReCaptcha. This plugin only supports Google ReCAPTCHA V2 (not V3)

Obtain your own key & secret here: https://www.google.com/recaptcha

!!! Remember to add this domain into the reCaptcha setting or add your own domain: recaptcha-flutter-plugin.firebaseapp.com

Then test your API KEY at: https://recaptcha-flutter-plugin.firebaseapp.com/?api_key=API_KEY

Put RecaptchaV2 widget into your widget tree (Usually inside Stack widget), make sure it's placed on top of the tree and block all the behind interactions:

  • You can change the plugin url for the captcha domain insde the RecaptchaV2 or leave it by default non adding the line:
pluginURL: "https://mypersonalurl.com"

if you have setted your own domain, specify the domain used

  • To show the Cancel Button with the captcha controller set the boolean to true:
visibleCancelBottom: true

otherwise it won't appear

  • Set the Text for the Cancel buttom or leave it by default:
textCancelButtom: "CANCEL CAPTCHA"
Example
RecaptchaV2Controller recaptchaV2Controller = RecaptchaV2Controller();
...
RecaptchaV2(
    apiKey: "YOUR_API_KEY", // for enabling the reCaptcha
    apiSecret: "YOUR_API_SECRET", // for verifying the responded token
    pluginURL: "https://mypersonalurl.com",
	visibleCancelBottom: true,
	textCancelButtom: "CUSTOM CANCEL CAPTCHA BUTTOM TEXT",
	controller: recaptchaV2Controller,
    onVerifiedError: (err){
        print(err);
    },
    onVerifiedSuccessfully: (success) {
        setState(() {
            if (success) {
                // You've been verified successfully.
            } else {
                // "Failed to verify.
            }
        });
    },
),

The RecaptchaV2 widget is hidden by default, you need to attach the RecaptchaV2Controller and call show() method when needed. Like this:

recaptchaV2Controller.show();

Manually hide it:

recaptchaV2Controller.hide();

That's it!

Categories

Dependencies

Dependency list 2 items

Source repository

Projects using this package

No data available yet.