authrocket 1.5.0 → 2.0.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 +37 -4
- data/README.md +4 -8
- data/authrocket.gemspec +4 -2
- data/lib/authrocket/api/api_config.rb +4 -4
- data/lib/authrocket/api/version.rb +1 -1
- data/lib/authrocket/app_hook.rb +3 -1
- data/lib/authrocket/auth_provider.rb +21 -9
- data/lib/authrocket/event.rb +4 -8
- data/lib/authrocket/login_policy.rb +1 -2
- data/lib/authrocket/realm.rb +2 -1
- data/lib/authrocket/session.rb +11 -5
- data/lib/authrocket/user.rb +32 -16
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9b93720c4868bc866ad26340e6c88fd3b87f9aa9
|
4
|
+
data.tar.gz: f4b1767d3c7e684357231ed206130ea84778d3a7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cc756a62eadb6dc8ce8e8da0f51916f9532e609c1caa4fada2a4d04e3ad4de66fca5cab23e1c338d502d21ae83b949ff9c805515c7dcd7f76596910a5181ee00
|
7
|
+
data.tar.gz: 6a9f6617e7c98dad6ff441ddc25792f36e950fd7643943a21d34fe8c4dd9e3fa9c1d041504a171872a8f142ba3779b56ce72e66811b5497be5baa0d8c211f9ac
|
data/CHANGELOG.md
CHANGED
@@ -1,30 +1,63 @@
|
|
1
|
+
#### 2.0.0
|
2
|
+
|
3
|
+
- NOTE: This version includes breaking changes.
|
4
|
+
- Depends on ncore 2.0
|
5
|
+
- ncore update changes most method signatures to remove the final api_creds param - use a :credentials key instead:
|
6
|
+
Old: User.create(params, api_creds)
|
7
|
+
New: User.create(params.merge(credentials: api_creds))
|
8
|
+
- As api_creds is not generally needed, this should affect few people
|
9
|
+
- No longer depends on 'multi_json', but uses it if available. Defaults to stdlib 'json'.
|
10
|
+
- find(nil) now raises RecordNotFound instead of returning nil
|
11
|
+
- User.reset_password_with_token signature change:
|
12
|
+
Old: reset_password_with_token(username, token, new_pw, new_pw_2, params={}, api_creds)
|
13
|
+
New: reset_password_with_token(username: '...', token: '...', password: '...', password_confirmation: '...', ...)
|
14
|
+
- Remove previously deprecated Event.validate_token
|
15
|
+
- Remove previously deprecated LoginPolicy#enable_logins, #enable_signups, #name_field
|
16
|
+
- Remove previously deprecated User#api_key, #last_login_on
|
17
|
+
- Add Event#request_data, Session#request_data
|
18
|
+
- Remove Event#ip, Session#ip, and Session#client - use #request_data['ip'] or #request_data['client'] instead
|
19
|
+
- Add AppHook#email_from_name
|
20
|
+
- Add AuthProvider#authorize_token
|
21
|
+
- Detect new ko_ API keys
|
22
|
+
- Support email verification
|
23
|
+
- Add LoginPolicy#redirect_uris
|
24
|
+
- Fix issue with older rubies
|
25
|
+
|
1
26
|
#### 1.5.0
|
27
|
+
|
2
28
|
- Update Event and add Notification
|
3
29
|
|
4
30
|
#### 1.4.4
|
31
|
+
|
5
32
|
- Bump to jwt 1.5
|
6
33
|
- Enforce hmac algorithm for jwt
|
7
|
-
- Add AuthProvider
|
34
|
+
- Add AuthProvider#min_complexity, #required_chars
|
8
35
|
|
9
36
|
#### 1.4.3
|
10
|
-
|
37
|
+
|
38
|
+
- Add AuthProvider#min_length
|
11
39
|
|
12
40
|
#### 1.4.2
|
13
|
-
|
41
|
+
|
42
|
+
- Add AppHook#email_renderer
|
14
43
|
|
15
44
|
#### 1.4.1
|
45
|
+
|
16
46
|
- Bump to jwt 1.4
|
17
|
-
- Add AppHook
|
47
|
+
- Add AppHook#email_to
|
18
48
|
- Update AppHook.event_types
|
19
49
|
|
20
50
|
#### 1.4.0
|
51
|
+
|
21
52
|
- Support social auth in AuthProvider and Credential
|
22
53
|
|
23
54
|
#### 1.3.1
|
55
|
+
|
24
56
|
- Add Realm#api_key_minutes
|
25
57
|
- Add Session#client
|
26
58
|
|
27
59
|
#### 1.3.0
|
60
|
+
|
28
61
|
- Add Session resource
|
29
62
|
- Deprecate Event.validate_token - Replaced by Session.from_token and Session.find
|
30
63
|
- Add missing auth_provider.* events
|
data/README.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
[AuthRocket](http://authrocket.com/) provides Auth as a Service, making it quick and easy to add signups, logins, a full user management UI, and much more to your app.
|
4
4
|
|
5
|
-
This gem works with both Rails and plain Ruby. It will auto-detect Rails and enable
|
5
|
+
This gem works with both Rails and plain Ruby. It will auto-detect Rails and enable Rails-specific features as appropriate.
|
6
6
|
|
7
7
|
|
8
8
|
## Usage
|
@@ -14,8 +14,7 @@ For installation, add `gem 'authrocket'` to your Gemfile. More details are below
|
|
14
14
|
|
15
15
|
By default, AuthRocket automatically loads your credentials from environment variables. For such hosting environments, including Heroku, just configure these:
|
16
16
|
|
17
|
-
|
18
|
-
AUTHROCKET_API_KEY = key_SAMPLE
|
17
|
+
AUTHROCKET_API_KEY = ko_SAMPLE
|
19
18
|
AUTHROCKET_URL = https://api-e1.authrocket.com/v1
|
20
19
|
AUTHROCKET_REALM = rl_SAMPLE # optional
|
21
20
|
AUTHROCKET_JWT_SECRET = jsk_SAMPLE # optional
|
@@ -29,8 +28,7 @@ By default, AuthRocket automatically loads your credentials from environment var
|
|
29
28
|
It's possible to configure AuthRocket using a Rails initializer (or other initializaiton code) too.
|
30
29
|
|
31
30
|
AuthRocket::Api.credentials = {
|
32
|
-
|
33
|
-
api_key: 'key_SAMPLE',
|
31
|
+
api_key: 'ko_SAMPLE',
|
34
32
|
url: 'https://api-e1.authrocket.com/v1',
|
35
33
|
realm: 'rl_SAMPLE',
|
36
34
|
jwt_secret: 'jsk_SAMPLE'
|
@@ -63,7 +61,6 @@ Let's add a couple methods to your Application Controller, substituting the corr
|
|
63
61
|
|
64
62
|
def require_user
|
65
63
|
unless current_user
|
66
|
-
flash.keep
|
67
64
|
redirect_to LOGIN_URL
|
68
65
|
end
|
69
66
|
end
|
@@ -84,9 +81,8 @@ Then add login and logout methods:
|
|
84
81
|
skip_before_filter :require_user
|
85
82
|
|
86
83
|
def login
|
87
|
-
flash.keep
|
88
84
|
if params[:token]
|
89
|
-
if AuthRocket::Session.from_token(params[:token]
|
85
|
+
if AuthRocket::Session.from_token(params[:token])
|
90
86
|
session[:ar_token] = params[:token]
|
91
87
|
redirect_to root_path
|
92
88
|
return
|
data/authrocket.gemspec
CHANGED
@@ -6,7 +6,7 @@ require 'authrocket/api/version'
|
|
6
6
|
Gem::Specification.new do |gem|
|
7
7
|
gem.name = "authrocket"
|
8
8
|
gem.version = AuthRocket::VERSION
|
9
|
-
gem.authors = ["
|
9
|
+
gem.authors = ["AuthRocket Team"]
|
10
10
|
gem.email = ["hello@authrocket.com"]
|
11
11
|
gem.description = %q{AuthRocket client for Ruby.}
|
12
12
|
gem.summary = %q{AuthRocket client for Ruby}
|
@@ -18,7 +18,9 @@ Gem::Specification.new do |gem|
|
|
18
18
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
19
19
|
gem.require_paths = ["lib"]
|
20
20
|
|
21
|
-
gem.
|
21
|
+
gem.required_ruby_version = '>= 1.9'
|
22
|
+
|
23
|
+
gem.add_dependency 'ncore', '~> 2.0'
|
22
24
|
gem.add_dependency 'jwt', '~> 1.5.0'
|
23
25
|
|
24
26
|
gem.add_development_dependency "bundler", "~> 1.3"
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module AuthRocket
|
2
2
|
include NCore::Builder
|
3
|
-
Resource.include AuthRocket::Client
|
4
|
-
SingletonResource.include AuthRocket::Client
|
3
|
+
Resource.send :include, AuthRocket::Client
|
4
|
+
SingletonResource.send :include, AuthRocket::Client
|
5
5
|
|
6
6
|
configure do
|
7
7
|
self.default_url = ENV['AUTHROCKET_URL']
|
@@ -34,7 +34,7 @@ module AuthRocket
|
|
34
34
|
|
35
35
|
self.auth_header_prefix = 'X-Authrocket'
|
36
36
|
|
37
|
-
self.credentials_error_message = %Q{Missing API credentials or URL. Set default credentials using "AuthRocket::Api.credentials = {api_key: YOUR_API_KEY,
|
37
|
+
self.credentials_error_message = %Q{Missing API credentials or URL. Set default credentials using "AuthRocket::Api.credentials = {api_key: YOUR_API_KEY, url: AR_REGION_URL}"}
|
38
38
|
end
|
39
39
|
|
40
40
|
|
@@ -57,7 +57,7 @@ module AuthRocket
|
|
57
57
|
case part
|
58
58
|
when /^jsk_/
|
59
59
|
o[:jwt_secret] = part
|
60
|
-
when /^
|
60
|
+
when /^k(ey|o)_/
|
61
61
|
o[:api_key] = part
|
62
62
|
when /^org_/
|
63
63
|
o[:account] = part
|
data/lib/authrocket/app_hook.rb
CHANGED
@@ -6,7 +6,8 @@ module AuthRocket
|
|
6
6
|
has_many :events
|
7
7
|
|
8
8
|
attr :event_type, :hook_type, :destination
|
9
|
-
attr :email_from, :
|
9
|
+
attr :email_from, :email_from_name, :email_renderer, :email_subject
|
10
|
+
attr :email_template, :email_to, :user_type
|
10
11
|
|
11
12
|
def self.event_types
|
12
13
|
%w( app_hook.created app_hook.updated app_hook.deleted
|
@@ -16,6 +17,7 @@ module AuthRocket
|
|
16
17
|
org.created org.updated org.deleted
|
17
18
|
realm.created realm.updated realm.deleted
|
18
19
|
user.created user.updated user.deleted
|
20
|
+
user.email.verification_requested user.email.verified
|
19
21
|
user.login.succeeded user.login.failed
|
20
22
|
user.password_token.created user.password_token.consumed user.password_token.failed
|
21
23
|
).sort
|
@@ -4,16 +4,17 @@ module AuthRocket
|
|
4
4
|
|
5
5
|
belongs_to :realm
|
6
6
|
|
7
|
-
attr :provider_type, :state
|
8
|
-
attr :login, :name_field, :signup
|
7
|
+
attr :name, :provider_type, :state
|
8
|
+
attr :email_verification, :login, :name_field, :password_field, :signup, :signup_mode, :verify
|
9
9
|
attr :min_complexity, :min_length, :required_chars
|
10
10
|
attr :client_id, :client_secret, :scopes
|
11
11
|
|
12
12
|
|
13
13
|
# attribs - :redirect_uri - required
|
14
14
|
# - :nonce - optional
|
15
|
-
def self.authorize_urls(attribs={}
|
16
|
-
|
15
|
+
def self.authorize_urls(attribs={})
|
16
|
+
params = parse_request_params(attribs)
|
17
|
+
parsed, creds = request(:get, url+'/authorize', params)
|
17
18
|
if parsed[:errors].any?
|
18
19
|
raise Error, parsed[:errors].inspect
|
19
20
|
end
|
@@ -27,8 +28,9 @@ module AuthRocket
|
|
27
28
|
|
28
29
|
# attribs - :redirect_uri - required
|
29
30
|
# - :nonce - optional
|
30
|
-
def self.authorize_url(auth_provider_id, attribs={}
|
31
|
-
|
31
|
+
def self.authorize_url(auth_provider_id, attribs={})
|
32
|
+
params = parse_request_params(attribs)
|
33
|
+
parsed, creds = request(:get, url+"/#{auth_provider_id}/authorize", params)
|
32
34
|
if parsed[:errors].any?
|
33
35
|
raise Error, parsed[:errors].inspect
|
34
36
|
end
|
@@ -37,17 +39,27 @@ module AuthRocket
|
|
37
39
|
|
38
40
|
# same as self.authorize_url(self.id, ...)
|
39
41
|
def authorize_url(attribs={})
|
40
|
-
|
42
|
+
params = parse_request_params(attribs).merge credentials: api_creds
|
43
|
+
self.class.authorize_url(id, params)
|
41
44
|
end
|
42
45
|
|
43
46
|
# attribs - :code - required
|
44
47
|
# - :nonce - optional
|
45
48
|
# - :state - required
|
46
49
|
# always returns a new object; check .errors? or .valid? to see how it went
|
47
|
-
def self.authorize(attribs={}
|
48
|
-
|
50
|
+
def self.authorize(attribs={})
|
51
|
+
params = parse_request_params(attribs)
|
52
|
+
parsed, creds = request(:post, url+'/authorize', params)
|
49
53
|
User.new(parsed, creds)
|
50
54
|
end
|
51
55
|
|
56
|
+
# attribs - :access_token - required
|
57
|
+
# always returns a new object; check .errors? or .valid? to see how it went
|
58
|
+
def authorize_token(attribs={})
|
59
|
+
params = parse_request_params(attribs)
|
60
|
+
parsed, creds = request(:post, url+'/authorize', params)
|
61
|
+
User.new parsed, creds
|
62
|
+
end
|
63
|
+
|
52
64
|
end
|
53
65
|
end
|
data/lib/authrocket/event.rb
CHANGED
@@ -11,18 +11,14 @@ module AuthRocket
|
|
11
11
|
belongs_to :user
|
12
12
|
has_many :notifications
|
13
13
|
|
14
|
-
attr :event_type
|
14
|
+
attr :event_type
|
15
15
|
attr_datetime :event_at
|
16
16
|
|
17
|
-
|
18
|
-
|
19
|
-
def self.validate_token(token, params={}, api_creds=nil)
|
20
|
-
parsed, creds = request(:get, "#{url}/login/#{CGI.escape token}", api_creds, params)
|
21
|
-
new(parsed, creds)
|
22
|
-
rescue RecordNotFound
|
23
|
-
nil
|
17
|
+
def request_data
|
18
|
+
self[:request]
|
24
19
|
end
|
25
20
|
|
21
|
+
|
26
22
|
def notifications
|
27
23
|
reload unless @attribs[:notifications]
|
28
24
|
unless @stuffed_event
|
@@ -7,8 +7,7 @@ module AuthRocket
|
|
7
7
|
|
8
8
|
attr :custom_domains, :external_css
|
9
9
|
attr :footer, :header, :login_handler, :name, :primary_domain
|
10
|
-
attr :signup_handler, :subdomain
|
11
|
-
attr :enable_logins, :enable_signups, :name_field # deprecated
|
10
|
+
attr :redirect_uris, :signup_handler, :subdomain
|
12
11
|
attr :base_domain, :domains # readonly
|
13
12
|
|
14
13
|
end
|
data/lib/authrocket/realm.rb
CHANGED
@@ -16,7 +16,8 @@ module AuthRocket
|
|
16
16
|
|
17
17
|
|
18
18
|
def reset!(params={})
|
19
|
-
|
19
|
+
params = parse_request_params(params).merge credentials: api_creds
|
20
|
+
parsed, _ = request(:post, "#{url}/reset", params)
|
20
21
|
load(parsed)
|
21
22
|
errors.empty? ? self : false
|
22
23
|
end
|
data/lib/authrocket/session.rb
CHANGED
@@ -4,13 +4,17 @@ module AuthRocket
|
|
4
4
|
|
5
5
|
belongs_to :user
|
6
6
|
|
7
|
-
attr :client, :ip
|
8
7
|
attr :token # readonly
|
9
8
|
attr_datetime :created_at, :expires_at # readonly
|
10
9
|
|
10
|
+
def request_data
|
11
|
+
self[:request]
|
12
|
+
end
|
13
|
+
|
14
|
+
|
11
15
|
# options - :within - (in seconds) Maximum time since the token was originally issued
|
12
|
-
def self.from_token(token, options={}
|
13
|
-
secret = (
|
16
|
+
def self.from_token(token, options={})
|
17
|
+
secret = (options[:credentials]||credentials)[:jwt_secret]
|
14
18
|
raise Error, "missing :jwt_secret (or AUTHROCKET_JWT_SECRET)" unless secret
|
15
19
|
return unless token
|
16
20
|
|
@@ -22,6 +26,7 @@ module AuthRocket
|
|
22
26
|
|
23
27
|
user = User.new({
|
24
28
|
id: jwt['uid'],
|
29
|
+
realm_id: jwt['aud'],
|
25
30
|
username: jwt['un'],
|
26
31
|
first_name: jwt['fn'],
|
27
32
|
last_name: jwt['ln'],
|
@@ -33,11 +38,12 @@ module AuthRocket
|
|
33
38
|
org_id: m['oid'],
|
34
39
|
org: m['oid'] && Org.new({
|
35
40
|
id: m['oid'],
|
41
|
+
realm_id: jwt['aud'],
|
36
42
|
name: m['o'],
|
37
43
|
}),
|
38
44
|
})
|
39
45
|
end,
|
40
|
-
},
|
46
|
+
}, options[:credentials])
|
41
47
|
session = new({
|
42
48
|
id: jwt['tk'],
|
43
49
|
created_at: jwt['iat'],
|
@@ -45,7 +51,7 @@ module AuthRocket
|
|
45
51
|
token: token,
|
46
52
|
user_id: jwt['uid'],
|
47
53
|
user: user
|
48
|
-
},
|
54
|
+
}, options[:credentials])
|
49
55
|
|
50
56
|
session
|
51
57
|
rescue JWT::DecodeError
|
data/lib/authrocket/user.rb
CHANGED
@@ -8,12 +8,10 @@ module AuthRocket
|
|
8
8
|
has_many :memberships
|
9
9
|
has_many :sessions
|
10
10
|
|
11
|
-
attr :
|
12
|
-
attr :custom, :email, :first_name
|
11
|
+
attr :custom, :email, :email_verification, :first_name
|
13
12
|
attr :last_name, :name, :password, :password_confirmation
|
14
13
|
attr :reference, :state, :user_type, :username
|
15
14
|
attr_datetime :created_at, :last_login_at
|
16
|
-
attr_datetime :last_login_on # deprecated
|
17
15
|
|
18
16
|
|
19
17
|
def credentials
|
@@ -35,35 +33,38 @@ module AuthRocket
|
|
35
33
|
|
36
34
|
class << self
|
37
35
|
|
38
|
-
def authenticate(username, password, params={}
|
39
|
-
params = params.merge
|
40
|
-
parsed, creds = request(:post, "#{url}/#{CGI.escape username}/authenticate",
|
36
|
+
def authenticate(username, password, params={})
|
37
|
+
params = parse_request_params(params).merge password: password
|
38
|
+
parsed, creds = request(:post, "#{url}/#{CGI.escape username}/authenticate", params)
|
41
39
|
if parsed[:errors].any?
|
42
40
|
raise ValidationError, parsed[:errors]
|
43
41
|
end
|
44
42
|
new(parsed, creds)
|
45
43
|
end
|
46
44
|
|
47
|
-
def authenticate_key(api_key, params={}
|
48
|
-
params = params.merge
|
49
|
-
parsed, creds = request(:post, "#{url}/authenticate_key",
|
45
|
+
def authenticate_key(api_key, params={})
|
46
|
+
params = parse_request_params(params).merge api_key: api_key
|
47
|
+
parsed, creds = request(:post, "#{url}/authenticate_key", params)
|
50
48
|
if parsed[:errors].any?
|
51
49
|
raise ValidationError, parsed[:errors]
|
52
50
|
end
|
53
51
|
new(parsed, creds)
|
54
52
|
end
|
55
53
|
|
56
|
-
def generate_password_token(username, params={}
|
57
|
-
|
54
|
+
def generate_password_token(username, params={})
|
55
|
+
params = parse_request_params(params)
|
56
|
+
parsed, creds = request(:post, "#{url}/#{CGI.escape username}/generate_password_token", params)
|
58
57
|
if parsed[:errors].any?
|
59
58
|
raise ValidationError, parsed[:errors]
|
60
59
|
end
|
61
60
|
new(parsed, creds)
|
62
61
|
end
|
63
62
|
|
64
|
-
|
65
|
-
|
66
|
-
|
63
|
+
# params - {username: '...', token: '...', password: '...', password_confirmation: '...'}
|
64
|
+
def reset_password_with_token(params)
|
65
|
+
params = parse_request_params(params, json_root: json_root)
|
66
|
+
username = params[json_root].delete(:username) || '--'
|
67
|
+
parsed, creds = request(:post, "#{url}/#{CGI.escape username}/reset_password_with_token", params)
|
67
68
|
if parsed[:errors].any?
|
68
69
|
raise ValidationError, parsed[:errors]
|
69
70
|
end
|
@@ -74,8 +75,23 @@ module AuthRocket
|
|
74
75
|
|
75
76
|
# params - {current_password: 'old', password: 'new', password_confirmation: 'new'}
|
76
77
|
def update_password(params)
|
77
|
-
params =
|
78
|
-
parsed, _ = request(:put, "#{url}/update_password",
|
78
|
+
params = parse_request_params(params, json_root: json_root).merge credentials: api_creds
|
79
|
+
parsed, _ = request(:put, "#{url}/update_password", params)
|
80
|
+
load(parsed)
|
81
|
+
errors.empty? ? self : false
|
82
|
+
end
|
83
|
+
|
84
|
+
def request_email_verification(params={})
|
85
|
+
params = parse_request_params(params).merge credentials: api_creds
|
86
|
+
parsed, _ = request(:post, "#{url}/request_email_verification", params)
|
87
|
+
load(parsed)
|
88
|
+
errors.empty? ? self : false
|
89
|
+
end
|
90
|
+
|
91
|
+
# params - {token: '...'}
|
92
|
+
def verify_email(params)
|
93
|
+
params = parse_request_params(params, json_root: json_root).merge credentials: api_creds
|
94
|
+
parsed, _ = request(:post, "#{url}/verify_email", params)
|
79
95
|
load(parsed)
|
80
96
|
errors.empty? ? self : false
|
81
97
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: authrocket
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- AuthRocket Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-02-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ncore
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '2.0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '2.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: jwt
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -110,7 +110,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
110
110
|
requirements:
|
111
111
|
- - ">="
|
112
112
|
- !ruby/object:Gem::Version
|
113
|
-
version: '
|
113
|
+
version: '1.9'
|
114
114
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
115
115
|
requirements:
|
116
116
|
- - ">="
|
@@ -118,7 +118,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
118
118
|
version: '0'
|
119
119
|
requirements: []
|
120
120
|
rubyforge_project:
|
121
|
-
rubygems_version: 2.4.
|
121
|
+
rubygems_version: 2.4.8
|
122
122
|
signing_key:
|
123
123
|
specification_version: 4
|
124
124
|
summary: AuthRocket client for Ruby
|