re_captcha 0.0.6 → 0.0.7
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/lib/re_captcha/application.rb +2 -7
- data/lib/re_captcha/helper.rb +13 -3
- data/lib/re_captcha/version.rb +1 -1
- data/spec/re_captcha/client_spec.rb +0 -11
- data/spec/re_captcha/secure_token_builder_spec.rb +8 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3b6be4701f57286eb1bfe932ac7bebf471f37eb6
|
4
|
+
data.tar.gz: 0b6841f91946cdb29719756b273f3b2711276836
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cbe06f3566be335608d60361175c42d86eba4c56cb941efaf4a2877534194773cd613e9ca6c146b75b2c6a20ff70534c948b2deee744d52e7643ebd000307580
|
7
|
+
data.tar.gz: f9758cb1da426973bc0563d82a8ba410dcf48a6418cecb2d7d81a56b78e99f20070880d28d13a9360e22acb19d5a4fe56804cbf3e054e8f706de8d72a47a4b38
|
@@ -6,7 +6,7 @@ module ReCaptcha
|
|
6
6
|
include API
|
7
7
|
|
8
8
|
def recaptcha_valid?(response, remote_ip: nil, model: nil, message: nil)
|
9
|
-
return true if
|
9
|
+
return true if skip_verification?
|
10
10
|
params = generate_verification_params(response, remote_ip)
|
11
11
|
verification = verify_recaptcha(params)
|
12
12
|
valid = verification['success']
|
@@ -14,11 +14,6 @@ module ReCaptcha
|
|
14
14
|
valid
|
15
15
|
end
|
16
16
|
|
17
|
-
def secure_token
|
18
|
-
secure_token_builder = SecureTokenBuilder.new(private_key)
|
19
|
-
secure_token_builder.build
|
20
|
-
end
|
21
|
-
|
22
17
|
private
|
23
18
|
|
24
19
|
def verify_recaptcha(params)
|
@@ -29,7 +24,7 @@ module ReCaptcha
|
|
29
24
|
{ response: response, secret: private_key, remoteip: remote_ip }
|
30
25
|
end
|
31
26
|
|
32
|
-
def
|
27
|
+
def skip_verification?
|
33
28
|
skipped_env.include? env
|
34
29
|
end
|
35
30
|
|
data/lib/re_captcha/helper.rb
CHANGED
@@ -3,18 +3,28 @@ module ReCaptcha
|
|
3
3
|
def recaptcha_tags(options = {})
|
4
4
|
html = ''
|
5
5
|
html << %(<div class="g-recaptcha" data-sitekey="#{ReCaptcha.client.public_key}" )
|
6
|
-
html << %(data-stoken="#{
|
7
|
-
html
|
6
|
+
html << %(data-stoken="#{secure_token}" #{tag_attributes(options)}></div>\n)
|
7
|
+
format_html(html)
|
8
8
|
end
|
9
9
|
|
10
10
|
def recaptcha_script(language: nil)
|
11
11
|
html = ''
|
12
12
|
html << %(<script src="#{ReCaptcha.client.api_endpoint}api.js#{language_query(language)}" async defer></script>\n)
|
13
|
-
html
|
13
|
+
format_html(html)
|
14
14
|
end
|
15
15
|
|
16
16
|
private
|
17
17
|
|
18
|
+
def format_html(html)
|
19
|
+
html.respond_to?(:html_safe) ? html.html_safe : html
|
20
|
+
end
|
21
|
+
|
22
|
+
def secure_token
|
23
|
+
private_key = ReCaptcha.client.private_key
|
24
|
+
secure_token_builder = SecureTokenBuilder.new(private_key)
|
25
|
+
secure_token_builder.build
|
26
|
+
end
|
27
|
+
|
18
28
|
def tag_attributes(theme: 'light', type: 'image', size: 'normal',
|
19
29
|
tab_index: 0, callback: nil, expired_callback: nil)
|
20
30
|
attributes = ''
|
data/lib/re_captcha/version.rb
CHANGED
@@ -48,7 +48,6 @@ describe ReCaptcha::Client do
|
|
48
48
|
it { expect(instance).to respond_to(:api_endpoint) }
|
49
49
|
it { expect(instance).to respond_to(:skipped_env) }
|
50
50
|
it { expect(instance).to respond_to(:recaptcha_valid?) }
|
51
|
-
it { expect(instance).to respond_to(:secure_token) }
|
52
51
|
|
53
52
|
describe '#private_key' do
|
54
53
|
subject(:private_key) { instance.private_key }
|
@@ -211,15 +210,5 @@ describe ReCaptcha::Client do
|
|
211
210
|
end
|
212
211
|
end
|
213
212
|
end
|
214
|
-
|
215
|
-
describe '#secure_token' do
|
216
|
-
let(:secure_token_builder) { instance_double("ReCaptcha::SecureTokenBuilder") }
|
217
|
-
|
218
|
-
it 'delegates to SecureTokenBuilder' do
|
219
|
-
ReCaptcha::SecureTokenBuilder.stub(:new).and_return(secure_token_builder)
|
220
|
-
expect(secure_token_builder).to receive(:build)
|
221
|
-
instance.secure_token
|
222
|
-
end
|
223
|
-
end
|
224
213
|
end
|
225
214
|
end
|
@@ -8,10 +8,18 @@ describe ReCaptcha::SecureTokenBuilder do
|
|
8
8
|
it { expect(instance).to respond_to(:build) }
|
9
9
|
|
10
10
|
describe '#build' do
|
11
|
+
|
11
12
|
it 'builds a secure token' do
|
12
13
|
expect(instance.build).to be_a(String)
|
13
14
|
expect(instance.build).not_to be_empty
|
14
15
|
end
|
16
|
+
|
17
|
+
it 'builds a token with a correct value' do
|
18
|
+
time = Time.parse("Feb 24 1981")
|
19
|
+
allow(Time).to receive(:now).and_return(time)
|
20
|
+
allow(SecureRandom).to receive(:uuid).and_return('8a180d31-c031-4258-a36f-bc4207f67bef')
|
21
|
+
expect(instance.build).to eq("95ZHArcXmvPlPBc6r95vSj_83vWuXuetY9KfVy4O6AszqvTE_ok6u85L74jMQYmYKtIEqjOJzUgiK9kSjEROQYHleYCsftaXldeLgxeQCFI")
|
22
|
+
end
|
15
23
|
end
|
16
24
|
end
|
17
25
|
end
|