recaptcha 5.0.0 → 5.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/README.md +11 -11
- data/lib/recaptcha/helpers.rb +2 -0
- data/lib/recaptcha/railtie.rb +22 -0
- data/lib/recaptcha/version.rb +1 -1
- data/rails/locales/en.yml +5 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 424f86ca2326f83ccc3a2210b5c23a3341a16109a8297aa11dafc4aca051c21e
|
4
|
+
data.tar.gz: 2d6d8dbc65ba54bc3289e15d2f7635c90b521f2d3e3c04d04a673c3f65a14547
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fb30c399fb7b38fa0e0f3a8f59b146cdc7da3632f9e1d1a2716db5c1939c288e7993902f1c8f4c9a2ad41c4e8284c508d2e6b253da4a77366cd119a545f5b92f
|
7
|
+
data.tar.gz: 553c4b1672b8c60d42d0774397d4ade4dc5e33cb574bb8b113ffa4573a0e08af38e3bcee5808e7f326f8179496e18c9e6facc828f46b7e242ec8fd16435cfa5c
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -270,7 +270,8 @@ For more information, refer to the [v3 documentation](https://developers.google.
|
|
270
270
|
### Examples
|
271
271
|
|
272
272
|
With v3, you can let all users log in without any intervention at all if their score is above some
|
273
|
-
threshold, and only show a v2 checkbox recaptcha challenge if it is below the
|
273
|
+
threshold, and only show a v2 checkbox recaptcha challenge (fall back to v2) if it is below the
|
274
|
+
threshold:
|
274
275
|
|
275
276
|
```erb
|
276
277
|
…
|
@@ -286,7 +287,7 @@ threshold, and only show a v2 checkbox recaptcha challenge if it is below the th
|
|
286
287
|
# app/controllers/sessions_controller.rb
|
287
288
|
def create
|
288
289
|
success = verify_recaptcha(action: 'login', minimum_score: 0.5)
|
289
|
-
checkbox_success =
|
290
|
+
checkbox_success = verify_recaptcha unless success
|
290
291
|
if success || checkbox_success
|
291
292
|
# Perform action
|
292
293
|
else
|
@@ -298,6 +299,8 @@ def create
|
|
298
299
|
end
|
299
300
|
```
|
300
301
|
|
302
|
+
(You can also find this [example](demo/rails/app/controllers/v3_captchas_controller.rb) in the demo app.)
|
303
|
+
|
301
304
|
Another example:
|
302
305
|
|
303
306
|
```erb
|
@@ -332,7 +335,7 @@ end
|
|
332
335
|
|
333
336
|
Adds an inline script tag that calls `grecaptcha.execute` for the given `site_key` and `action` and
|
334
337
|
calls the `callback` with the resulting response token. You need to verify this token with
|
335
|
-
[`verify_recaptcha`](#
|
338
|
+
[`verify_recaptcha`](#verify_recaptcha-use-with-v3) in your controller in order to get the
|
336
339
|
[score](https://developers.google.com/recaptcha/docs/v3#score).
|
337
340
|
|
338
341
|
By default, this inserts a hidden `<input type="hidden" class="g-recaptcha-response">` tag. The
|
@@ -437,20 +440,17 @@ It is recommended to pass `external_script: false` on all but one of the calls t
|
|
437
440
|
`recaptcha` since you only need to include the script tag once for a given `site_key`.
|
438
441
|
|
439
442
|
## I18n support
|
440
|
-
reCAPTCHA passes two types of error explanation to a linked model. It will use the I18n gem
|
441
|
-
to translate the default error message if I18n is available. To customize the messages to your locale,
|
442
|
-
add these keys to your I18n backend:
|
443
|
-
|
444
|
-
`recaptcha.errors.verification_failed` error message displayed if the captcha words didn't match
|
445
|
-
`recaptcha.errors.recaptcha_unreachable` displayed if a timeout error occured while attempting to verify the captcha
|
446
443
|
|
447
|
-
|
444
|
+
reCAPTCHA supports the I18n gem (it comes with English translations)
|
445
|
+
To override or add new languages, add to `config/locales/*.yml`
|
448
446
|
|
449
447
|
```yaml
|
448
|
+
# config/locales/en.yml
|
450
449
|
en:
|
451
450
|
recaptcha:
|
452
451
|
errors:
|
453
|
-
verification_failed: '
|
452
|
+
verification_failed: 'reCAPTCHA was incorrect, please try again.'
|
453
|
+
recaptcha_unreachable: 'reCAPTCHA verification server error, please try again.'
|
454
454
|
```
|
455
455
|
|
456
456
|
## Testing
|
data/lib/recaptcha/helpers.rb
CHANGED
@@ -177,6 +177,7 @@ module Recaptcha
|
|
177
177
|
<<-HTML
|
178
178
|
<script#{nonce_attr}>
|
179
179
|
// Define function so that we can call it again later if we need to reset it
|
180
|
+
// This executes reCAPTCHA and then calls our callback.
|
180
181
|
function #{recaptcha_v3_execute_function_name(action)}() {
|
181
182
|
grecaptcha.ready(function() {
|
182
183
|
grecaptcha.execute('#{site_key}', {action: '#{action}'}).then(function(token) {
|
@@ -190,6 +191,7 @@ module Recaptcha
|
|
190
191
|
|
191
192
|
// Async variant so you can await this function from another async function (no need for
|
192
193
|
// an explicit callback function then!)
|
194
|
+
// Returns a Promise that resolves with the response token.
|
193
195
|
async function #{recaptcha_v3_async_execute_function_name(action)}() {
|
194
196
|
return new Promise((resolve, reject) => {
|
195
197
|
grecaptcha.ready(async function() {
|
data/lib/recaptcha/railtie.rb
CHANGED
@@ -9,5 +9,27 @@ module Recaptcha
|
|
9
9
|
ActiveSupport.on_load(:action_controller) do
|
10
10
|
include Recaptcha::Adapters::ControllerMethods
|
11
11
|
end
|
12
|
+
|
13
|
+
initializer 'recaptcha' do |app|
|
14
|
+
Recaptcha::Railtie.instance_eval do
|
15
|
+
pattern = pattern_from app.config.i18n.available_locales
|
16
|
+
|
17
|
+
add("rails/locales/#{pattern}.yml")
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
class << self
|
22
|
+
protected
|
23
|
+
|
24
|
+
def add(pattern)
|
25
|
+
files = Dir[File.join(File.dirname(__FILE__), '../..', pattern)]
|
26
|
+
I18n.load_path.concat(files)
|
27
|
+
end
|
28
|
+
|
29
|
+
def pattern_from(args)
|
30
|
+
array = Array(args || [])
|
31
|
+
array.blank? ? '*' : "{#{array.join ','}}"
|
32
|
+
end
|
33
|
+
end
|
12
34
|
end
|
13
35
|
end
|
data/lib/recaptcha/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: recaptcha
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.
|
4
|
+
version: 5.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jason L Perry
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-06
|
11
|
+
date: 2019-08-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|
@@ -154,6 +154,7 @@ files:
|
|
154
154
|
- lib/recaptcha/rails.rb
|
155
155
|
- lib/recaptcha/railtie.rb
|
156
156
|
- lib/recaptcha/version.rb
|
157
|
+
- rails/locales/en.yml
|
157
158
|
homepage: http://github.com/ambethia/recaptcha
|
158
159
|
licenses:
|
159
160
|
- MIT
|