rocketweb/magento-captcha-bypass

The extension disables Google reCAPTCHA by providing a simple hashed value thru a cookie

Installs: 2 044

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

Type:magento2-module

v1.0.3 2023-07-07 05:31 UTC

This package is auto-updated.

Last update: 2024-06-07 07:30:15 UTC


README

The extension disables Google reCAPTCHA by providing a simple hashed value thru a cookie

Installation

Using composer:

composer2 require rocketweb/magento-captcha-bypass

Setup

Once installed, you need to configure the extension in Stores -> Settings -> Configuration then open Security (tab) -> Google reCAPTCHA Storefront -> Bypass Storefront ReCaptcha and set a unique random string for Secret Key field: Screenshot from Admin displaying Secret Key field

Usage

First, you need to add the Secret Key to the cypress.config.js you are using:

module.exports = defineConfig({
    projectId: "xxxxxx",
    e2e: {
        ...
        secretKey: '-key-from-magento-configuration-',
        ....

Next, you need to add CryptoJs library (or something similar that supports MD5):

npm install crypto-js

If all your packages are dev-dependencies, install this also as dependency:

npm install crypto-js  --save-dev

Then include the crypto-js into at the top of the Cypress Test file:

# ... (other import lines) ...
import CryptoJS from 'crypto-js';

The final step is setting the Cookie needed to activate the Recaptcha Bypass inside the it() before any cy.visit(...) is called:

it(['Can create an account', () => {
    let secretKey = Cypress.config('secretKey')
    let date = parseInt(new Date(). getTime()/1000);
    let hash = CryptoJS.MD5(secretKey + '-' + date).toString(CryptoJS.enc.Hex)
    cy.setCookie('__rbp', hash);

    cy.visit(...)
    ...
})

This will add a cookie with specific hash that is than recognized by Magento code which disabled ReCaptcha on the page (if it's enabled that is).