tiddle 0.4.0 → 0.4.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/tiddle/strategy.rb +5 -5
- data/lib/tiddle/token_issuer.rb +8 -4
- data/lib/tiddle/version.rb +1 -1
- data/spec/spec_helper.rb +1 -0
- data/spec/tiddle_spec.rb +19 -0
- data/tiddle.gemspec +1 -1
- metadata +10 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cfe845a06fabc2a40cd22474e1312ca1647b8c0d
|
4
|
+
data.tar.gz: b4fde58413f9050dae56a67864843b82de0f5fa5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a348ea2217110695c94bab0d7a2133533854bd0e09d23aceec68cfcd6d51bf1796f4e3bc67755c18f64b7d834e2b3dda69e3320eb7bec7056df168b8cd14b4e8
|
7
|
+
data.tar.gz: a4fb1d612c2e9f675273b184544269de508138e8016f512baba57ac3c551f9e1c5e96e0ce96cbcbad6f999fc9aff61f160dd3d248d96db76770c7a07acf0dd49
|
data/lib/tiddle/strategy.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'devise/strategies/authenticatable'
|
2
2
|
require 'tiddle/model_name'
|
3
|
+
require 'tiddle/token_issuer'
|
3
4
|
|
4
5
|
module Devise
|
5
6
|
module Strategies
|
@@ -11,11 +12,10 @@ module Devise
|
|
11
12
|
resource = mapping.to.find_for_authentication(email: email_from_headers)
|
12
13
|
return fail(:invalid_token) unless resource
|
13
14
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
end
|
15
|
+
token = Tiddle::TokenIssuer.build.find_token(resource, token_from_headers)
|
16
|
+
if (token)
|
17
|
+
touch_token(token)
|
18
|
+
return success!(resource)
|
19
19
|
end
|
20
20
|
|
21
21
|
fail(:invalid_token)
|
data/lib/tiddle/token_issuer.rb
CHANGED
@@ -23,10 +23,14 @@ module Tiddle
|
|
23
23
|
end
|
24
24
|
|
25
25
|
def expire_token(resource, request)
|
26
|
-
resource.
|
27
|
-
.
|
28
|
-
|
29
|
-
|
26
|
+
find_token(resource, request.headers["X-#{ModelName.new.with_dashes(resource)}-TOKEN"])
|
27
|
+
.try(:destroy)
|
28
|
+
end
|
29
|
+
|
30
|
+
def find_token(resource, token_from_headers)
|
31
|
+
resource.authentication_tokens.detect do |token|
|
32
|
+
Devise.secure_compare(token.body, token_from_headers)
|
33
|
+
end
|
30
34
|
end
|
31
35
|
|
32
36
|
def purge_old_tokens(resource)
|
data/lib/tiddle/version.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
data/spec/tiddle_spec.rb
CHANGED
@@ -36,6 +36,25 @@ describe Tiddle do
|
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
39
|
+
describe "find_token" do
|
40
|
+
|
41
|
+
before do
|
42
|
+
@admin_user = AdminUser.create!(email: "test@example.com", password: "12345678")
|
43
|
+
@token = Tiddle.create_and_return_token(@admin_user, FakeRequest.new)
|
44
|
+
end
|
45
|
+
|
46
|
+
it "returns a token from the database" do
|
47
|
+
result = Tiddle::TokenIssuer.build.find_token(@admin_user, @token)
|
48
|
+
expect(result).to eq @admin_user.authentication_tokens.last
|
49
|
+
end
|
50
|
+
|
51
|
+
it 'only returns tokens belonging to the resource' do
|
52
|
+
other_user = AdminUser.create!(email: "test-other@example.com", password: "12345678")
|
53
|
+
result = Tiddle::TokenIssuer.build.find_token(other_user, @token)
|
54
|
+
expect(result).to be_nil
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
39
58
|
describe "expire_token" do
|
40
59
|
|
41
60
|
before do
|
data/tiddle.gemspec
CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
|
20
20
|
spec.required_ruby_version = '>= 2.1.0'
|
21
21
|
|
22
|
-
spec.add_dependency "devise", "
|
22
|
+
spec.add_dependency "devise", ">= 3.4.1", "< 3.6"
|
23
23
|
spec.add_dependency "activerecord", "~> 4.2.0"
|
24
24
|
spec.add_development_dependency "bundler", "~> 1.7"
|
25
25
|
spec.add_development_dependency "rake", "~> 10.0"
|
metadata
CHANGED
@@ -1,29 +1,35 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tiddle
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Niedzielski
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-06-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: devise
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 3.4.1
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '3.6'
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
|
-
- - "
|
27
|
+
- - ">="
|
25
28
|
- !ruby/object:Gem::Version
|
26
29
|
version: 3.4.1
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '3.6'
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: activerecord
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|