bharathraj-e / g_recaptcha_v3

Create Google reCAPTCHA v3 token for Flutter web.
https://pub.dev/packages/g_recaptcha_v3
MIT License
11 stars 8 forks source link

how to add the recaptcha's script programmably? #10

Closed daria-kolpakova closed 1 year ago

daria-kolpakova commented 1 year ago

hi) is it possible to add the script programmably?

<script src="https://www.google.com/recaptcha/api.js?render=<your Recaptcha v3 site key>"></script>

I tried to implement flavors, but creating ScriptElement doesn't help( The app sees this script only afte hot reload

  void _createReCaptchaScript(String token) {
    final script = ScriptElement()
      ..id = 'recaptcha_script'
      ..src = 'https://www.google.com/recaptcha/api.js?render=$key';
    document.head?.append(script);
  }
DIRRHUB commented 9 months ago

@daria-kolpakova The script must be injected before running the app, so think this will be useful for new coming

Future<void> main() async {
  CaptchaService.injectScript();
  ....
  runApp(MyApp());
}
class CaptchaService {
  static void injectScript() {
    try {
      if (kIsWeb) {
        final ScriptElement script = ScriptElement();
        script.src = '${ServerEndpoints.googleBaseUrl}/recaptcha/api.js?render=${EnvConstants.recaptchaSiteKey}';
        document.head?.append(script);
      }
    } catch (e) {
    log(e);
    }
  }
}