firebase_id_token 2.2.0 → 2.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2208ffbacd22db6584031abb6c135e81c7351a33
4
- data.tar.gz: 5b31009d9921ff7c1a09b127b22f295a95108e1e
3
+ metadata.gz: 7881ecf256206e396bfd54d8a2954feadaa162ce
4
+ data.tar.gz: 9f413ff8208a7318f5c28c59536390b300cf0044
5
5
  SHA512:
6
- metadata.gz: 647fa8e8323b1933f98a01c3fd489f1717344389435d3243fb3c610face4c06b059714a8707edd6823aa23a6ead8d94e8be3462cdd23e5f3d61758337ec32d09
7
- data.tar.gz: 188dadfcbf80dae844c4948c27ceeba955eb65d03c83a15429a4af6d4db796c49c4223d193bb8c2cfbf3666edd92d80529bea2f6273014468ae7bb67c4af8847
6
+ metadata.gz: f4b877b7597491df27b6c3fb09bbc01b04b1e613c0e594e1f7c12d8864183dfe8a64906514ffbfc6c8776992eef3434b1d0a1295772c3e0b24684f49dc29f31b
7
+ data.tar.gz: 512bb0b70ba34e7ac7a4fd86b0a56c60def064443705c49c4bd3abfc7c5cb952e08e580fb236b48d1cb3d7043ab69a61febcffe613146ba9becda35f5dc96963
data/README.md CHANGED
@@ -1,211 +1,211 @@
1
- # Ruby Firebase ID Token verifier (pre-release)
2
-
3
- ![Alt text](https://api.travis-ci.org/fschuindt/firebase_id_token.svg?branch=master)
4
- [![Code Climate](https://codeclimate.com/github/fschuindt/firebase_id_token/badges/gpa.svg)](https://codeclimate.com/github/fschuindt/firebase_id_token)
5
- [![Issue Count](https://codeclimate.com/github/fschuindt/firebase_id_token/badges/issue_count.svg)](https://codeclimate.com/github/fschuindt/firebase_id_token)
6
- [![Test Coverage](https://codeclimate.com/github/fschuindt/firebase_id_token/badges/coverage.svg)](https://codeclimate.com/github/fschuindt/firebase_id_token/coverage)
7
- [![Inline docs](http://inch-ci.org/github/fschuindt/firebase_id_token.svg?branch=master)](http://inch-ci.org/github/fschuindt/firebase_id_token)
8
-
9
- A Ruby gem to verify the signature of Firebase ID Tokens. It uses Redis to store Google's x509 certificates and manage their expiration time, so you don't need to request Google's API in every execution and can access it as fast as reading from memory.
10
-
11
- It also checks the JWT payload parameters as recommended [here](https://firebase.google.com/docs/auth/admin/verify-id-tokens) by Firebase official documentation.
12
-
13
- Feel free to open any issue or to [contact me](https://fschuindt.github.io/blog/about/) directly.
14
- Any contribution is welcome.
15
-
16
- ## Docs
17
-
18
- + http://www.rubydoc.info/gems/firebase_id_token
19
-
20
- ## Requirements
21
-
22
- + Redis
23
-
24
- ## Installing
25
-
26
- ```
27
- gem install firebase_id_token
28
- ```
29
-
30
- or in your Gemfile
31
- ```
32
- gem 'firebase_id_token', '~> 2.2.0'
33
- ```
34
- then
35
- ```
36
- bundle install
37
- ```
38
-
39
- ## Configuration
40
-
41
- It's needed to set up your Firebase Project ID.
42
-
43
- If you are using Rails, this should probably go into `config/initializers/firebase_id_token.rb`.
44
- ```ruby
45
- FirebaseIdToken.configure do |config|
46
- config.project_ids = ['your-firebase-project-id']
47
- end
48
- ```
49
-
50
- `project_ids` must be a Array.
51
-
52
- *If you want to verify signatures from more than one Firebase project, just add more Project IDs to the list.*
53
-
54
- You can also pass a Redis instance to `config` if you are not using Redis defaults.
55
- In this case, you must have the gem `redis` in your `Gemfile`.
56
- ```ruby
57
- FirebaseIdToken.configure do |config|
58
- config.project_ids = ['your-firebase-project-id']
59
- config.redis = Redis.new(host: '10.0.1.1', port: 6380, db: 15)
60
- end
61
- ```
62
-
63
- Otherwise, it will use just `Redis.new` as the instance.
64
-
65
- ## Usage
66
-
67
- You can get a glimpse of it by reading our RSpec output on your machine. It's
68
- really helpful. But here is a complete guide:
69
-
70
- ### Downloading Certificates
71
-
72
- Before verifying tokens, you need to download Google's x509 certificates.
73
-
74
- To do it simply:
75
- ```ruby
76
- FirebaseIdToken::Certificates.request
77
- ```
78
-
79
- It will download the certificates and save it in Redis, but only if Redis certificates database is empty. To force download and override Redis database, use:
80
- ```ruby
81
- FirebaseIdToken::Certificates.request!
82
- ```
83
-
84
- Google give us information about the certificates expiration time, it's used to set a Redis TTL (Time-To-Live) when saving it. By doing so, the certificates will be automatically deleted after its expiration.
85
-
86
- #### Certificates Info
87
-
88
- Checks the presence of certificates in Redis database.
89
- ```ruby
90
- FirebaseIdToken::Certificates.present?
91
- => true
92
- ```
93
-
94
- How many seconds until the certificate's expiration.
95
- ```ruby
96
- FirebaseIdToken::Certificates.ttl
97
- => 22352
98
- ```
99
-
100
- Lists all certificates in a database.
101
- ```ruby
102
- FirebaseIdToken::Certificates.all
103
- => [{"ec8f292sd30224afac5c55540df66d1f999d" => <OpenSSL::X509::Certificate: [...]]
104
- ```
105
-
106
- Finds the respective certificate of a given Key ID.
107
- ```ruby
108
- FirebaseIdToken::Certificates.find('ec8f292sd30224afac5c55540df66d1f999d')
109
- => <OpenSSL::X509::Certificate: subject=<OpenSSL::X509 [...]>
110
- ```
111
-
112
- #### Downloading in Rails
113
-
114
- If you are using Rails, it's clever to download certificates in a cron task, you can use [whenever](https://github.com/javan/whenever).
115
-
116
- **Example**
117
-
118
- *Read whenever's guide on how to set it up.*
119
-
120
- Create your task in `lib/tasks/firebase.rake`:
121
- ```ruby
122
- namespace :firebase do
123
- namespace :certificates do
124
- desc "Request Google's x509 certificates when Redis is empty"
125
- task request: :environment do
126
- FirebaseIdToken::Certificates.request
127
- end
128
-
129
- desc "Request Google's x509 certificates and override Redis"
130
- task force_request: :environment do
131
- FirebaseIdToken::Certificates.request!
132
- end
133
- end
134
- end
135
- ```
136
-
137
- And in your `config/schedule.rb` you might have:
138
- ```ruby
139
- every 1.hour do
140
- rake 'firebase:certificates:force_request'
141
- end
142
- ```
143
-
144
- Then:
145
- ```
146
- $ whenever --update-crontab
147
- ```
148
-
149
- I recommend running it once every hour or every 30 minutes, it's up to you. Normally the certificates expiration time is around 4 to 6 hours, but it's good to perform it in a small fraction of this time.
150
-
151
- When developing, you should just run the task:
152
- ```
153
- $ rake firebase:certificates:request
154
- ```
155
-
156
- *And remember, you need the Redis server to be running.*
157
-
158
- ### Verifying Tokens
159
-
160
- Pass the Firebase ID Token to `FirebaseIdToken::Signature.verify` and it will return the token payload if everything is ok:
161
-
162
- ```ruby
163
- FirebaseIdToken::Signature.verify(token)
164
- => {"iss"=>"https://securetoken.google.com/firebase-id-token", "name"=>"Bob Test", [...]}
165
- ```
166
-
167
- When either the signature is false or the token is invalid, it will return `nil`:
168
- ```ruby
169
- FirebaseIdToken::Signature.verify(fake_token)
170
- => nil
171
-
172
- FirebaseIdToken::Signature.verify('aaaaaa')
173
- => nil
174
- ```
175
-
176
- **WARNING:** If you try to verify a signature without any certificates in Redis database it will raise a `FirebaseIdToken::Exceptions::NoCertificatesError`.
177
-
178
- #### Payload Structure
179
-
180
- In case you need, here's a example of the payload structure from a Google login in JSON.
181
- ```json
182
- {
183
- "iss":"https://securetoken.google.com/firebase-id-token",
184
- "name":"Ugly Bob",
185
- "picture":"https://someurl.com/photo.jpg",
186
- "aud":"firebase-id-token",
187
- "auth_time":1492981192,
188
- "user_id":"theUserID",
189
- "sub":"theUserID",
190
- "iat":1492981200,
191
- "exp":33029000017,
192
- "email":"uglybob@emailurl.com",
193
- "email_verified":true,
194
- "firebase":{
195
- "identities":{
196
- "google.com":[
197
- "1010101010101010101"
198
- ],
199
- "email":[
200
- "uglybob@emailurl.com"
201
- ]
202
- },
203
- "sign_in_provider":"google.com"
204
- }
205
- }
206
-
207
- ```
208
-
209
- ## License
210
-
211
- The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
1
+ # Ruby Firebase ID Token verifier (pre-release)
2
+
3
+ ![Alt text](https://api.travis-ci.org/fschuindt/firebase_id_token.svg?branch=master)
4
+ [![Code Climate](https://codeclimate.com/github/fschuindt/firebase_id_token/badges/gpa.svg)](https://codeclimate.com/github/fschuindt/firebase_id_token)
5
+ [![Issue Count](https://codeclimate.com/github/fschuindt/firebase_id_token/badges/issue_count.svg)](https://codeclimate.com/github/fschuindt/firebase_id_token)
6
+ [![Test Coverage](https://codeclimate.com/github/fschuindt/firebase_id_token/badges/coverage.svg)](https://codeclimate.com/github/fschuindt/firebase_id_token/coverage)
7
+ [![Inline docs](http://inch-ci.org/github/fschuindt/firebase_id_token.svg?branch=master)](http://inch-ci.org/github/fschuindt/firebase_id_token)
8
+
9
+ A Ruby gem to verify the signature of Firebase ID Tokens. It uses Redis to store Google's x509 certificates and manage their expiration time, so you don't need to request Google's API in every execution and can access it as fast as reading from memory.
10
+
11
+ It also checks the JWT payload parameters as recommended [here](https://firebase.google.com/docs/auth/admin/verify-id-tokens) by Firebase official documentation.
12
+
13
+ Feel free to open any issue or to [contact me](https://fschuindt.github.io/blog/about/) directly.
14
+ Any contribution is welcome.
15
+
16
+ ## Docs
17
+
18
+ + http://www.rubydoc.info/gems/firebase_id_token
19
+
20
+ ## Requirements
21
+
22
+ + Redis
23
+
24
+ ## Installing
25
+
26
+ ```
27
+ gem install firebase_id_token
28
+ ```
29
+
30
+ or in your Gemfile
31
+ ```
32
+ gem 'firebase_id_token', '~> 2.3.0'
33
+ ```
34
+ then
35
+ ```
36
+ bundle install
37
+ ```
38
+
39
+ ## Configuration
40
+
41
+ It's needed to set up your Firebase Project ID.
42
+
43
+ If you are using Rails, this should probably go into `config/initializers/firebase_id_token.rb`.
44
+ ```ruby
45
+ FirebaseIdToken.configure do |config|
46
+ config.project_ids = ['your-firebase-project-id']
47
+ end
48
+ ```
49
+
50
+ `project_ids` must be a Array.
51
+
52
+ *If you want to verify signatures from more than one Firebase project, just add more Project IDs to the list.*
53
+
54
+ You can also pass a Redis instance to `config` if you are not using Redis defaults.
55
+ In this case, you must have the gem `redis` in your `Gemfile`.
56
+ ```ruby
57
+ FirebaseIdToken.configure do |config|
58
+ config.project_ids = ['your-firebase-project-id']
59
+ config.redis = Redis.new(host: '10.0.1.1', port: 6380, db: 15)
60
+ end
61
+ ```
62
+
63
+ Otherwise, it will use just `Redis.new` as the instance.
64
+
65
+ ## Usage
66
+
67
+ You can get a glimpse of it by reading our RSpec output on your machine. It's
68
+ really helpful. But here is a complete guide:
69
+
70
+ ### Downloading Certificates
71
+
72
+ Before verifying tokens, you need to download Google's x509 certificates.
73
+
74
+ To do it simply:
75
+ ```ruby
76
+ FirebaseIdToken::Certificates.request
77
+ ```
78
+
79
+ It will download the certificates and save it in Redis, but only if Redis certificates database is empty. To force download and override Redis database, use:
80
+ ```ruby
81
+ FirebaseIdToken::Certificates.request!
82
+ ```
83
+
84
+ Google give us information about the certificates expiration time, it's used to set a Redis TTL (Time-To-Live) when saving it. By doing so, the certificates will be automatically deleted after its expiration.
85
+
86
+ #### Certificates Info
87
+
88
+ Checks the presence of certificates in Redis database.
89
+ ```ruby
90
+ FirebaseIdToken::Certificates.present?
91
+ => true
92
+ ```
93
+
94
+ How many seconds until the certificate's expiration.
95
+ ```ruby
96
+ FirebaseIdToken::Certificates.ttl
97
+ => 22352
98
+ ```
99
+
100
+ Lists all certificates in a database.
101
+ ```ruby
102
+ FirebaseIdToken::Certificates.all
103
+ => [{"ec8f292sd30224afac5c55540df66d1f999d" => <OpenSSL::X509::Certificate: [...]]
104
+ ```
105
+
106
+ Finds the respective certificate of a given Key ID.
107
+ ```ruby
108
+ FirebaseIdToken::Certificates.find('ec8f292sd30224afac5c55540df66d1f999d')
109
+ => <OpenSSL::X509::Certificate: subject=<OpenSSL::X509 [...]>
110
+ ```
111
+
112
+ #### Downloading in Rails
113
+
114
+ If you are using Rails, it's clever to download certificates in a cron task, you can use [whenever](https://github.com/javan/whenever).
115
+
116
+ **Example**
117
+
118
+ *Read whenever's guide on how to set it up.*
119
+
120
+ Create your task in `lib/tasks/firebase.rake`:
121
+ ```ruby
122
+ namespace :firebase do
123
+ namespace :certificates do
124
+ desc "Request Google's x509 certificates when Redis is empty"
125
+ task request: :environment do
126
+ FirebaseIdToken::Certificates.request
127
+ end
128
+
129
+ desc "Request Google's x509 certificates and override Redis"
130
+ task force_request: :environment do
131
+ FirebaseIdToken::Certificates.request!
132
+ end
133
+ end
134
+ end
135
+ ```
136
+
137
+ And in your `config/schedule.rb` you might have:
138
+ ```ruby
139
+ every 1.hour do
140
+ rake 'firebase:certificates:force_request'
141
+ end
142
+ ```
143
+
144
+ Then:
145
+ ```
146
+ $ whenever --update-crontab
147
+ ```
148
+
149
+ I recommend running it once every hour or every 30 minutes, it's up to you. Normally the certificates expiration time is around 4 to 6 hours, but it's good to perform it in a small fraction of this time.
150
+
151
+ When developing, you should just run the task:
152
+ ```
153
+ $ rake firebase:certificates:request
154
+ ```
155
+
156
+ *And remember, you need the Redis server to be running.*
157
+
158
+ ### Verifying Tokens
159
+
160
+ Pass the Firebase ID Token to `FirebaseIdToken::Signature.verify` and it will return the token payload if everything is ok:
161
+
162
+ ```ruby
163
+ FirebaseIdToken::Signature.verify(token)
164
+ => {"iss"=>"https://securetoken.google.com/firebase-id-token", "name"=>"Bob Test", [...]}
165
+ ```
166
+
167
+ When either the signature is false or the token is invalid, it will return `nil`:
168
+ ```ruby
169
+ FirebaseIdToken::Signature.verify(fake_token)
170
+ => nil
171
+
172
+ FirebaseIdToken::Signature.verify('aaaaaa')
173
+ => nil
174
+ ```
175
+
176
+ **WARNING:** If you try to verify a signature without any certificates in Redis database it will raise a `FirebaseIdToken::Exceptions::NoCertificatesError`.
177
+
178
+ #### Payload Structure
179
+
180
+ In case you need, here's a example of the payload structure from a Google login in JSON.
181
+ ```json
182
+ {
183
+ "iss":"https://securetoken.google.com/firebase-id-token",
184
+ "name":"Ugly Bob",
185
+ "picture":"https://someurl.com/photo.jpg",
186
+ "aud":"firebase-id-token",
187
+ "auth_time":1492981192,
188
+ "user_id":"theUserID",
189
+ "sub":"theUserID",
190
+ "iat":1492981200,
191
+ "exp":33029000017,
192
+ "email":"uglybob@emailurl.com",
193
+ "email_verified":true,
194
+ "firebase":{
195
+ "identities":{
196
+ "google.com":[
197
+ "1010101010101010101"
198
+ ],
199
+ "email":[
200
+ "uglybob@emailurl.com"
201
+ ]
202
+ },
203
+ "sign_in_provider":"google.com"
204
+ }
205
+ }
206
+
207
+ ```
208
+
209
+ ## License
210
+
211
+ The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
@@ -1,38 +1,38 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'firebase_id_token/version'
5
-
6
- Gem::Specification.new do |spec|
7
- spec.name = 'firebase_id_token'
8
- spec.version = FirebaseIdToken::VERSION
9
- spec.authors = ['Fernando Schuindt']
10
- spec.email = ['f.schuindtcs@gmail.com']
11
-
12
- spec.summary = 'A Firebase ID Token verifier.'
13
- spec.description = "A Ruby gem to verify the signature of Firebase ID "\
14
- "Tokens. It uses Redis to store Google's x509 certificates and manage "\
15
- "their expiration time, so you don't need to request Google's API in "\
16
- "every execution and can access it as fast as reading from memory."
17
- spec.homepage = 'https://github.com/fschuindt/firebase_id_token'
18
- spec.license = 'MIT'
19
-
20
- spec.files = `git ls-files -z`.split("\x0").reject do |f|
21
- f.match(%r{^(test|spec|features)/})
22
- end
23
- spec.bindir = 'exe'
24
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
25
- spec.require_paths = ['lib']
26
-
27
- spec.add_development_dependency 'bundler', '~> 1.14'
28
- spec.add_development_dependency 'rake', '~> 10.0'
29
- spec.add_development_dependency 'rspec', '~> 3.0'
30
- spec.add_development_dependency 'redcarpet', '~> 3.4', '>= 3.4.0'
31
- spec.add_development_dependency 'simplecov', '~> 0.14.1'
32
- spec.add_development_dependency 'codeclimate-test-reporter', '~> 1.0', '>= 1.0.0'
33
-
34
- spec.add_runtime_dependency 'redis', '>= 3.3.3'
35
- spec.add_runtime_dependency 'redis-namespace', '~> 1.5', '>= 1.5.3'
36
- spec.add_dependency 'httparty', '~> 0.14.0'
37
- spec.add_runtime_dependency 'jwt', '~> 1.5', '>= 1.5.6'
38
- end
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'firebase_id_token/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'firebase_id_token'
8
+ spec.version = FirebaseIdToken::VERSION
9
+ spec.authors = ['Fernando Schuindt']
10
+ spec.email = ['f.schuindtcs@gmail.com']
11
+
12
+ spec.summary = 'A Firebase ID Token verifier.'
13
+ spec.description = "A Ruby gem to verify the signature of Firebase ID "\
14
+ "Tokens. It uses Redis to store Google's x509 certificates and manage "\
15
+ "their expiration time, so you don't need to request Google's API in "\
16
+ "every execution and can access it as fast as reading from memory."
17
+ spec.homepage = 'https://github.com/fschuindt/firebase_id_token'
18
+ spec.license = 'MIT'
19
+
20
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
21
+ f.match(%r{^(test|spec|features)/})
22
+ end
23
+ spec.bindir = 'exe'
24
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
25
+ spec.require_paths = ['lib']
26
+
27
+ spec.add_development_dependency 'bundler', '~> 1.14'
28
+ spec.add_development_dependency 'rake', '~> 10.0'
29
+ spec.add_development_dependency 'rspec', '~> 3.0'
30
+ spec.add_development_dependency 'redcarpet', '~> 3.4', '>= 3.4.0'
31
+ spec.add_development_dependency 'simplecov', '~> 0.14.1'
32
+ spec.add_development_dependency 'codeclimate-test-reporter', '~> 1.0', '>= 1.0.0'
33
+
34
+ spec.add_runtime_dependency 'redis', '~> 4.0', '>= 4.0.1'
35
+ spec.add_runtime_dependency 'redis-namespace', '~> 1.6', '>= 1.6.0'
36
+ spec.add_dependency 'httparty', '~> 0.16', '>= 0.16.2'
37
+ spec.add_runtime_dependency 'jwt', '~> 2.1', '>= 2.1.0'
38
+ end
@@ -1,3 +1,3 @@
1
- module FirebaseIdToken
2
- VERSION = '2.2.0'
3
- end
1
+ module FirebaseIdToken
2
+ VERSION = '2.3.0'
3
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: firebase_id_token
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.0
4
+ version: 2.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fernando Schuindt
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-05-21 00:00:00.000000000 Z
11
+ date: 2018-06-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -110,70 +110,82 @@ dependencies:
110
110
  name: redis
111
111
  requirement: !ruby/object:Gem::Requirement
112
112
  requirements:
113
+ - - "~>"
114
+ - !ruby/object:Gem::Version
115
+ version: '4.0'
113
116
  - - ">="
114
117
  - !ruby/object:Gem::Version
115
- version: 3.3.3
118
+ version: 4.0.1
116
119
  type: :runtime
117
120
  prerelease: false
118
121
  version_requirements: !ruby/object:Gem::Requirement
119
122
  requirements:
123
+ - - "~>"
124
+ - !ruby/object:Gem::Version
125
+ version: '4.0'
120
126
  - - ">="
121
127
  - !ruby/object:Gem::Version
122
- version: 3.3.3
128
+ version: 4.0.1
123
129
  - !ruby/object:Gem::Dependency
124
130
  name: redis-namespace
125
131
  requirement: !ruby/object:Gem::Requirement
126
132
  requirements:
127
133
  - - "~>"
128
134
  - !ruby/object:Gem::Version
129
- version: '1.5'
135
+ version: '1.6'
130
136
  - - ">="
131
137
  - !ruby/object:Gem::Version
132
- version: 1.5.3
138
+ version: 1.6.0
133
139
  type: :runtime
134
140
  prerelease: false
135
141
  version_requirements: !ruby/object:Gem::Requirement
136
142
  requirements:
137
143
  - - "~>"
138
144
  - !ruby/object:Gem::Version
139
- version: '1.5'
145
+ version: '1.6'
140
146
  - - ">="
141
147
  - !ruby/object:Gem::Version
142
- version: 1.5.3
148
+ version: 1.6.0
143
149
  - !ruby/object:Gem::Dependency
144
150
  name: httparty
145
151
  requirement: !ruby/object:Gem::Requirement
146
152
  requirements:
147
153
  - - "~>"
148
154
  - !ruby/object:Gem::Version
149
- version: 0.14.0
155
+ version: '0.16'
156
+ - - ">="
157
+ - !ruby/object:Gem::Version
158
+ version: 0.16.2
150
159
  type: :runtime
151
160
  prerelease: false
152
161
  version_requirements: !ruby/object:Gem::Requirement
153
162
  requirements:
154
163
  - - "~>"
155
164
  - !ruby/object:Gem::Version
156
- version: 0.14.0
165
+ version: '0.16'
166
+ - - ">="
167
+ - !ruby/object:Gem::Version
168
+ version: 0.16.2
157
169
  - !ruby/object:Gem::Dependency
158
170
  name: jwt
159
171
  requirement: !ruby/object:Gem::Requirement
160
172
  requirements:
161
173
  - - "~>"
162
174
  - !ruby/object:Gem::Version
163
- version: '1.5'
175
+ version: '2.1'
164
176
  - - ">="
165
177
  - !ruby/object:Gem::Version
166
- version: 1.5.6
178
+ version: 2.1.0
167
179
  type: :runtime
168
180
  prerelease: false
169
181
  version_requirements: !ruby/object:Gem::Requirement
170
182
  requirements:
171
183
  - - "~>"
172
184
  - !ruby/object:Gem::Version
173
- version: '1.5'
185
+ version: '2.1'
174
186
  - - ">="
175
187
  - !ruby/object:Gem::Version
176
- version: 1.5.6
188
+ version: 2.1.0
177
189
  description: A Ruby gem to verify the signature of Firebase ID Tokens. It uses Redis
178
190
  to store Google's x509 certificates and manage their expiration time, so you don't
179
191
  need to request Google's API in every execution and can access it as fast as reading