Skip to content

Commit e2e4784

Browse files
committed
update params and add timeouts to faraday
1 parent e7a835f commit e2e4784

2 files changed

Lines changed: 8 additions & 3 deletions

File tree

.env.example

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ SCRATCH_ASSET_IMPORT_BASE_URL=https://example.com/assets/
6969
# Pardot Form Handler endpoint for subscription forwarding
7070
PARDOT_SUBSCRIPTION_URL=
7171

72-
# Cloudflare Turnstile bot protection.This is a test key that always passes.
72+
# Cloudflare Turnstile bot protection. This is a test key that always passes.
7373
# Others are available for testing purposes at
7474
# https://developers.cloudflare.com/turnstile/troubleshooting/testing/.
7575
CLOUDFLARE_TURNSTILE_SECRET_KEY=1x0000000000000000000000000000000AA

app/controllers/api/subscriptions_controller.rb

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ class SubscriptionsController < ApiController
77
API_URL = 'https://challenges.cloudflare.com/turnstile/v0/siteverify'
88

99
def create
10-
payload = subscription_params.to_h
10+
# turnstile token is only used for bot check so strip it out before validation and submission
11+
payload = subscription_params.except(:turnstile_token).to_h
1112
errors = validation_errors_for(payload)
1213

1314
if errors.empty?
@@ -45,6 +46,7 @@ def create
4546

4647
def check_cloudflare_turnstile
4748
return unless Rails.configuration.x.cloudflare_turnstile.enabled
49+
return if params[:subscription].blank?
4850
return if valid_turnstile_token?
4951

5052
Rails.logger.warn('[subscriptions#create] outcome=failure error_code=turnstile_verification_failed')
@@ -65,6 +67,9 @@ def valid_turnstile_token?
6567
secret: Rails.configuration.x.cloudflare_turnstile.secret_key,
6668
response: token,
6769
remoteip: request.remote_ip
70+
},
71+
{
72+
request: { timeout: 5, open_timeout: 2 }
6873
}
6974
)
7075
unless response.success?
@@ -82,7 +87,7 @@ def valid_turnstile_token?
8287
end
8388

8489
def subscription_params
85-
params.require(:subscription).permit(:email, :test_opt_in, :privacy_policy)
90+
params.require(:subscription).permit(:email, :test_opt_in, :privacy_policy, :turnstile_token)
8691
end
8792

8893
def subscriptions_submitter

0 commit comments

Comments
 (0)