firebase_id_token 2.5.2 → 3.0.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
  SHA256:
3
- metadata.gz: 4cb7c188a4b5026064a64c3a11963be1caae523a448ecc5d998597b7c6989d74
4
- data.tar.gz: b0d57512d245bc43ff295bc0987d8529b6881fdcb7c3508d227204c029821725
3
+ metadata.gz: b0bb2d6c4da0bacd15e8a551b29b48f3ee99018697334a437f11c5ee03bd2a11
4
+ data.tar.gz: 936cf705c0130dc0927e0b51811f3cba131970990c7ee5e480fe1705abde2e6f
5
5
  SHA512:
6
- metadata.gz: c17980aaa3e572ac10bf4208ae27ca2dc75781665c219422b23209eb9f7183532d50c2e2491d9036cfd2702cadaddeadb3cac926cf2e7f0d1f0baacc85e22c57
7
- data.tar.gz: d9db140915704be2cf596a136e60bc9a4afee5e99eb1eebd35adfb65eeb2beec535ed72188e7a7454413629591f4310f8ae6db050dcd23f4f474dff0737f501f
6
+ metadata.gz: 62bf3a86a503fba14deac924a837b739c5cba3e7a93ad560a9f9f2b320edf704d7df33897b7422ebffbe47698252c49e00ab72cad3e08da1fb6e43066c0345cd
7
+ data.tar.gz: ad1a1ed121307e5b79d3943d9b37624bacf8b42f8b171642de6052d50bf313d7ec3f777f99d93f7f31233c45d1bb2365ba10fff3bede139458b9528d25c1a219
@@ -0,0 +1,34 @@
1
+ name: Test
2
+ on:
3
+ push:
4
+ branches:
5
+ - master
6
+
7
+ jobs:
8
+ test:
9
+ name: "Run Tests"
10
+ runs-on: ubuntu-latest
11
+ services:
12
+ redis:
13
+ image: redis
14
+ ports:
15
+ - 6379:6379
16
+ options: --entrypoint redis-server
17
+ steps:
18
+ - uses: actions/checkout@v3
19
+ - uses: ruby/setup-ruby@v1
20
+ with:
21
+ ruby-version: '3.2.2'
22
+ - name: Install Bundler
23
+ run: gem install bundler:2.4.13
24
+ - name: Install Dependencies
25
+ run: bundle install
26
+ - name: Run tests
27
+ run: bundle exec rspec
28
+ - name: Publish code coverage
29
+ uses: paambaati/codeclimate-action@v4.0.0
30
+ env:
31
+ CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
32
+ with:
33
+ debug: true
34
+ coverageLocations: ${{github.workspace}}/coverage/coverage.json:simplecov
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 3.2.2
data/CHANGELOG.md CHANGED
@@ -6,7 +6,40 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
- ## [2.5.2] - 2023-03-16
9
+ Nothing.
10
+
11
+ ## [3.0.0] - 2023-04-11
12
+
13
+ ### Added
14
+ - CI testing using GitHub Actions.
15
+ - Explains on `README.md` about the behavior of `verify` on expired tokens. [Details here](https://github.com/fschuindt/firebase_id_token/issues/29).
16
+ - Warns about the poorly synchronized clocks issue with the token's `iat`. [Details here](https://github.com/fschuindt/firebase_id_token/issues/21#issuecomment-623133926).
17
+ - Gives better examples when testing. [Details here](https://github.com/fschuindt/firebase_id_token/pull/38).
18
+ - Created a `.ruby-version` file.
19
+ - Added ActiveSupport as dependency for `Time.current`.
20
+ - SimpleCov JSON formatter and `json` as dependency.
21
+
22
+ ### Changed
23
+ - It won't default to `Redis.new` anymore. You must now provide Redis details during configuration. [Details here](https://github.com/fschuindt/firebase_id_token/issues/30).
24
+ - Upgraded Redis to 5.0.6.
25
+ - Upgraded Redis Namespace to 1.10.
26
+ - Upgraded HTTParty to 0.21.0.
27
+ - Upgraded JWT to 2.7.
28
+ - Upgraded [Dev] Ruby to 3.2.2.
29
+ - Upgraded [Dev] Bundler to 2.4.13.
30
+ - Upgraded [Dev] Rake to 13.0.6.
31
+ - Upgraded [Dev] RSpec to 3.12.
32
+ - Upgraded [Dev] Redcarpet to 3.6.
33
+ - Upgraded [Dev] Simplecov to 0.22.0.
34
+ - Upgraded [Dev] Pry to 0.14.2.
35
+
36
+ ### Fixed
37
+ - Code Climate test coverage report.
38
+
39
+ ### Removed
40
+ - Travis CI badge.
41
+
42
+ ## [2.5.2] - 2023-04-09
10
43
 
11
44
  ### Fixed
12
45
  - [CWE-472](https://github.com/fschuindt/firebase_id_token/pull/41).
@@ -119,6 +152,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
119
152
  ## [0.1.0] - 2017-04-23
120
153
  *Version removed.*
121
154
 
155
+ [3.0.0]: https://github.com/fschuindt/firebase_id_token/compare/2.5.2...3.0.0
156
+ [2.5.2]: https://github.com/fschuindt/firebase_id_token/compare/2.5.1...2.5.2
122
157
  [2.5.1]: https://github.com/fschuindt/firebase_id_token/compare/2.5.0...2.5.1
123
158
  [2.5.0]: https://github.com/fschuindt/firebase_id_token/compare/2.4.0...2.5.0
124
159
  [2.4.0]: https://github.com/fschuindt/firebase_id_token/compare/2.3.2...2.4.0
data/README.md CHANGED
@@ -1,12 +1,12 @@
1
1
  # Ruby Firebase ID Token verifier (pre-release)
2
2
 
3
- ![Alt text](https://api.travis-ci.org/fschuindt/firebase_id_token.svg?branch=master)
3
+ [![Actions Status](https://github.com/fschuindt/firebase_id_token/workflows/Test/badge.svg?branch=master)](https://github.com/fschuindt/firebase_id_token/actions?query=workflow%3ATest)
4
+ [![Test Coverage](https://codeclimate.com/github/fschuindt/firebase_id_token/badges/coverage.svg)](https://codeclimate.com/github/fschuindt/firebase_id_token/coverage)
4
5
  [![Code Climate](https://codeclimate.com/github/fschuindt/firebase_id_token/badges/gpa.svg)](https://codeclimate.com/github/fschuindt/firebase_id_token)
5
6
  [![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
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
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.
9
+ A Ruby gem to verify the signature of Firebase ID Tokens (JWT). 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
10
 
11
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
12
 
@@ -29,7 +29,7 @@ gem install firebase_id_token
29
29
 
30
30
  or in your Gemfile
31
31
  ```
32
- gem 'firebase_id_token', '~> 2.5.2'
32
+ gem 'firebase_id_token', '~> 3.0.0'
33
33
  ```
34
34
  then
35
35
  ```
@@ -43,25 +43,16 @@ It's needed to set up your Firebase Project ID.
43
43
  If you are using Rails, this should probably go into `config/initializers/firebase_id_token.rb`.
44
44
  ```ruby
45
45
  FirebaseIdToken.configure do |config|
46
+ config.redis = Redis.new
46
47
  config.project_ids = ['your-firebase-project-id']
47
48
  end
48
49
  ```
49
50
 
50
- `project_ids` must be a Array.
51
+ - `redis` with a `Redis` instance must be supplied. You can configure your Redis details here. Example: `Redis.new(host: '10.0.1.1', port: 6380, db: 15)`.
52
+ - `project_ids` must be an Array.
51
53
 
52
54
  *If you want to verify signatures from more than one Firebase project, just add more Project IDs to the list.*
53
55
 
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
56
  ## Usage
66
57
 
67
58
  You can get a glimpse of it by reading our RSpec output on your machine. It's
@@ -71,21 +62,21 @@ really helpful. But here is a complete guide:
71
62
 
72
63
  Before verifying tokens, you need to download Google's x509 certificates.
73
64
 
74
- To do it simply:
65
+ To do it, simply:
75
66
  ```ruby
76
67
  FirebaseIdToken::Certificates.request
77
68
  ```
78
69
 
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:
70
+ It will download the certificates and save it in Redis, but only if the Redis certificates database is empty. To force download and override of the Redis database, use:
80
71
  ```ruby
81
72
  FirebaseIdToken::Certificates.request!
82
73
  ```
83
74
 
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.
75
+ 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
76
 
86
77
  #### Certificates Info
87
78
 
88
- Checks the presence of certificates in Redis database.
79
+ Checks the presence of certificates in the Redis database.
89
80
  ```ruby
90
81
  FirebaseIdToken::Certificates.present?
91
82
  => true
@@ -97,13 +88,13 @@ FirebaseIdToken::Certificates.ttl
97
88
  => 22352
98
89
  ```
99
90
 
100
- Lists all certificates in a database.
91
+ Lists all certificates in the database.
101
92
  ```ruby
102
93
  FirebaseIdToken::Certificates.all
103
94
  => [{"ec8f292sd30224afac5c55540df66d1f999d" => <OpenSSL::X509::Certificate: [...]]
104
95
  ```
105
96
 
106
- Finds the respective certificate of a given Key ID.
97
+ Finds the respective certificate of a given Key ID (`kid`).
107
98
  ```ruby
108
99
  FirebaseIdToken::Certificates.find('ec8f292sd30224afac5c55540df66d1f999d')
109
100
  => <OpenSSL::X509::Certificate: subject=<OpenSSL::X509 [...]>
@@ -153,7 +144,7 @@ When developing, you should just run the task:
153
144
  $ rake firebase:certificates:request
154
145
  ```
155
146
 
156
- *And remember, you need the Redis server to be running.*
147
+ *You need Redis to be running.*
157
148
 
158
149
  ### Verifying Tokens
159
150
 
@@ -173,22 +164,42 @@ FirebaseIdToken::Signature.verify('aaaaaa')
173
164
  => nil
174
165
  ```
175
166
 
176
- **WARNING:** If you try to verify a signature without any certificates in Redis database it will raise a `FirebaseIdToken::Exceptions::NoCertificatesError`.
167
+ #### WARNING!
168
+
169
+ ##### Expired tokens can point to long gone certificates
170
+
171
+ Notice that often when the token have expired, the Firebase certificate can be already missing from the Firebase servers. In these cases, `verify` will return `nil`.
172
+
173
+ If you want to take specific actions in such cases, here's a solution suggested by the user [cfanpnk](https://github.com/fschuindt/firebase_id_token/issues/29#issuecomment-751137511):
174
+
175
+ 1. Use `verify!` to raise an exception.
176
+ 2. Rescue `FirebaseIdToken::Exceptions::CertificateNotFound` and return `401`.
177
+ 3. The client app will refresh the token if expired.
178
+
179
+ More details [here](https://github.com/fschuindt/firebase_id_token/issues/29).
180
+
181
+ ##### Trying to verify tokens without downloaded certificates will raise an error
182
+
183
+ If you try to verify a signature without any certificates in Redis database, it will raise a `FirebaseIdToken::Exceptions::NoCertificatesError`.
184
+
185
+ ##### "I keep on getting `nil` on `verify`"
186
+
187
+ Poorly synchronized clocks will sometimes make the server think the token's `iat` is on the future, which will render the token as invalid. Make sure your server's or development system's clock is correctly set. On macOS, some people reported success by unchecking and checking the "Set date and time automatically" configuration checkbox. See [here](https://github.com/fschuindt/firebase_id_token/issues/21#issuecomment-623133926).
177
188
 
178
189
  #### Payload Structure
179
190
 
180
191
  In case you need, here's a example of the payload structure from a Google login in JSON.
181
192
  ```json
182
193
  {
183
- "iss":"https://securetoken.google.com/firebase-id-token",
194
+ "iss":"https://securetoken.google.com/{{YOUR_FIREBASE_APP_ID}}",
184
195
  "name":"Ugly Bob",
185
196
  "picture":"https://someurl.com/photo.jpg",
186
- "aud":"firebase-id-token",
197
+ "aud":"{{YOUR_FIREBASE_APP_ID}}",
187
198
  "auth_time":1492981192,
188
199
  "user_id":"theUserID",
189
200
  "sub":"theUserID",
190
- "iat":1492981200,
191
- "exp":33029000017,
201
+ "iat":1492981200, // needs to be in the past
202
+ "exp":33029000017, // needs to be in the future
192
203
  "email":"uglybob@emailurl.com",
193
204
  "email_verified":true,
194
205
  "firebase":{
@@ -206,34 +217,36 @@ In case you need, here's a example of the payload structure from a Google login
206
217
 
207
218
  ```
208
219
 
220
+ If you're using this snippet for testing, make sure you check the comments in it.
209
221
 
210
- ## Development
211
- The test suite can be run with `bundle exec rake rspec`
222
+ ## Testing
212
223
 
224
+ ```
225
+ bundle exec rake rspec
226
+ ```
213
227
 
214
- The test mode is prepared as preparation for the test.
215
-
216
- `FirebaseIdToken.test!`
228
+ ### Testing Mode
217
229
 
230
+ Just run:
231
+ ```
232
+ FirebaseIdToken.test!
233
+ ```
218
234
 
219
- By using test mode, the following methods become available.
235
+ By using this mode, the following methods become available.
220
236
 
221
237
  ```ruby
222
238
  # RSA PRIVATE KEY
223
239
  FirebaseIdToken::Testing::Certificates.private_key
240
+
224
241
  # CERTIFICATE
225
242
  FirebaseIdToken::Testing::Certificates.certificate
226
243
  ```
227
244
 
228
- CERTIFICATE will always return the same value and will not communicate to google.
245
+ `certificate` will always return the same value. No external HTTP call is performed.
229
246
 
247
+ #### Example: Testing in Rails
230
248
 
231
- ### Example
232
- #### Rails test
233
-
234
- Describe the following in test_helper.rb etc.
235
-
236
- * test_helper
249
+ Describes the following in `test_helper.rb`.
237
250
 
238
251
  ```ruby
239
252
  class ActiveSupport::TestCase
@@ -243,7 +256,7 @@ class ActiveSupport::TestCase
243
256
  end
244
257
  ```
245
258
 
246
- * controller_test
259
+ Test example:
247
260
 
248
261
  ```ruby
249
262
  require 'test_helper'
@@ -274,7 +287,6 @@ module Api
274
287
  end
275
288
  ```
276
289
 
277
-
278
290
  ## License
279
291
 
280
292
  The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
@@ -22,16 +22,18 @@ Gem::Specification.new do |spec|
22
22
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
23
  spec.require_paths = ['lib']
24
24
 
25
- spec.add_development_dependency 'bundler', '~> 2.3', '>= 2.3.11'
26
- spec.add_development_dependency 'rake', '~> 12.3', '>= 12.3.3'
27
- spec.add_development_dependency 'rspec', '~> 3.0'
28
- spec.add_development_dependency 'redcarpet', '~> 3.4', '>= 3.4.0'
29
- spec.add_development_dependency 'simplecov', '~> 0.14.1'
30
- spec.add_development_dependency 'codeclimate-test-reporter', '~> 1.0', '>= 1.0.0'
31
- spec.add_development_dependency 'pry', '~> 0.12.2'
25
+ spec.add_development_dependency 'bundler', '~> 2.4', '>= 2.4.13'
26
+ spec.add_development_dependency 'rake', '~> 13.0', '>= 13.0.6'
27
+ spec.add_development_dependency 'rspec', '~> 3.12'
28
+ spec.add_development_dependency 'redcarpet', '~> 3.6'
29
+ spec.add_development_dependency 'simplecov', '~> 0.22.0'
30
+ spec.add_development_dependency 'simplecov_json_formatter', '~> 0.1.2'
31
+ spec.add_development_dependency 'pry', '~> 0.14.2'
32
32
 
33
- spec.add_runtime_dependency 'redis', '~> 4.0', '>= 4.0.1'
34
- spec.add_runtime_dependency 'redis-namespace', '~> 1.6', '>= 1.6.0'
35
- spec.add_dependency 'httparty', '~> 0.21', '>= 0.16.2'
36
- spec.add_runtime_dependency 'jwt', '~> 2.1', '>= 2.1.0'
33
+ spec.add_runtime_dependency 'redis', '~> 5.0', '>= 5.0.6'
34
+ spec.add_runtime_dependency 'redis-namespace', '~> 1.10'
35
+ spec.add_dependency 'httparty', '~> 0.21.0'
36
+ spec.add_runtime_dependency 'jwt', '~> 2.7'
37
+ spec.add_runtime_dependency 'activesupport', '~> 7.0', '>= 7.0.4.3'
38
+ spec.add_runtime_dependency 'json', '~> 2.6', '>= 2.6.3'
37
39
  end
@@ -7,7 +7,6 @@ module FirebaseIdToken
7
7
  attr_accessor :redis, :project_ids, :certificates
8
8
 
9
9
  def initialize
10
- @redis = Redis.new
11
10
  @project_ids = []
12
11
  @certificates = FirebaseIdToken::Certificates
13
12
  end
@@ -1,3 +1,3 @@
1
1
  module FirebaseIdToken
2
- VERSION = '2.5.2'
2
+ VERSION = '3.0.0'
3
3
  end
@@ -2,6 +2,8 @@ require 'redis'
2
2
  require 'redis-namespace'
3
3
  require 'httparty'
4
4
  require 'jwt'
5
+ require 'active_support'
6
+ require 'active_support/time'
5
7
 
6
8
  require 'firebase_id_token/version'
7
9
  require 'firebase_id_token/exceptions/no_certificates_error'
@@ -16,12 +16,6 @@ module FirebaseIdToken
16
16
  end
17
17
  end
18
18
 
19
- describe '.redis' do
20
- it 'sets a Redis instance as default' do
21
- expect(Configuration.new.redis).to be_a(Redis)
22
- end
23
- end
24
-
25
19
  describe '.redis=' do
26
20
  it 'changes default values' do
27
21
  config = Configuration.new
data/spec/spec_helper.rb CHANGED
@@ -1,4 +1,7 @@
1
1
  require 'simplecov'
2
+ require 'simplecov_json_formatter'
3
+
4
+ SimpleCov.formatter = SimpleCov::Formatter::JSONFormatter
2
5
  SimpleCov.start
3
6
 
4
7
  require 'bundler/setup'
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.5.2
4
+ version: 3.0.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: 2023-05-10 00:00:00.000000000 Z
11
+ date: 2023-05-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,202 +16,212 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '2.3'
19
+ version: '2.4'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 2.3.11
22
+ version: 2.4.13
23
23
  type: :development
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - "~>"
28
28
  - !ruby/object:Gem::Version
29
- version: '2.3'
29
+ version: '2.4'
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 2.3.11
32
+ version: 2.4.13
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: rake
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '12.3'
39
+ version: '13.0'
40
40
  - - ">="
41
41
  - !ruby/object:Gem::Version
42
- version: 12.3.3
42
+ version: 13.0.6
43
43
  type: :development
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
46
46
  requirements:
47
47
  - - "~>"
48
48
  - !ruby/object:Gem::Version
49
- version: '12.3'
49
+ version: '13.0'
50
50
  - - ">="
51
51
  - !ruby/object:Gem::Version
52
- version: 12.3.3
52
+ version: 13.0.6
53
53
  - !ruby/object:Gem::Dependency
54
54
  name: rspec
55
55
  requirement: !ruby/object:Gem::Requirement
56
56
  requirements:
57
57
  - - "~>"
58
58
  - !ruby/object:Gem::Version
59
- version: '3.0'
59
+ version: '3.12'
60
60
  type: :development
61
61
  prerelease: false
62
62
  version_requirements: !ruby/object:Gem::Requirement
63
63
  requirements:
64
64
  - - "~>"
65
65
  - !ruby/object:Gem::Version
66
- version: '3.0'
66
+ version: '3.12'
67
67
  - !ruby/object:Gem::Dependency
68
68
  name: redcarpet
69
69
  requirement: !ruby/object:Gem::Requirement
70
70
  requirements:
71
71
  - - "~>"
72
72
  - !ruby/object:Gem::Version
73
- version: '3.4'
74
- - - ">="
75
- - !ruby/object:Gem::Version
76
- version: 3.4.0
73
+ version: '3.6'
77
74
  type: :development
78
75
  prerelease: false
79
76
  version_requirements: !ruby/object:Gem::Requirement
80
77
  requirements:
81
78
  - - "~>"
82
79
  - !ruby/object:Gem::Version
83
- version: '3.4'
84
- - - ">="
85
- - !ruby/object:Gem::Version
86
- version: 3.4.0
80
+ version: '3.6'
87
81
  - !ruby/object:Gem::Dependency
88
82
  name: simplecov
89
83
  requirement: !ruby/object:Gem::Requirement
90
84
  requirements:
91
85
  - - "~>"
92
86
  - !ruby/object:Gem::Version
93
- version: 0.14.1
87
+ version: 0.22.0
94
88
  type: :development
95
89
  prerelease: false
96
90
  version_requirements: !ruby/object:Gem::Requirement
97
91
  requirements:
98
92
  - - "~>"
99
93
  - !ruby/object:Gem::Version
100
- version: 0.14.1
94
+ version: 0.22.0
101
95
  - !ruby/object:Gem::Dependency
102
- name: codeclimate-test-reporter
96
+ name: simplecov_json_formatter
103
97
  requirement: !ruby/object:Gem::Requirement
104
98
  requirements:
105
99
  - - "~>"
106
100
  - !ruby/object:Gem::Version
107
- version: '1.0'
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- version: 1.0.0
101
+ version: 0.1.2
111
102
  type: :development
112
103
  prerelease: false
113
104
  version_requirements: !ruby/object:Gem::Requirement
114
105
  requirements:
115
106
  - - "~>"
116
107
  - !ruby/object:Gem::Version
117
- version: '1.0'
118
- - - ">="
119
- - !ruby/object:Gem::Version
120
- version: 1.0.0
108
+ version: 0.1.2
121
109
  - !ruby/object:Gem::Dependency
122
110
  name: pry
123
111
  requirement: !ruby/object:Gem::Requirement
124
112
  requirements:
125
113
  - - "~>"
126
114
  - !ruby/object:Gem::Version
127
- version: 0.12.2
115
+ version: 0.14.2
128
116
  type: :development
129
117
  prerelease: false
130
118
  version_requirements: !ruby/object:Gem::Requirement
131
119
  requirements:
132
120
  - - "~>"
133
121
  - !ruby/object:Gem::Version
134
- version: 0.12.2
122
+ version: 0.14.2
135
123
  - !ruby/object:Gem::Dependency
136
124
  name: redis
137
125
  requirement: !ruby/object:Gem::Requirement
138
126
  requirements:
139
127
  - - "~>"
140
128
  - !ruby/object:Gem::Version
141
- version: '4.0'
129
+ version: '5.0'
142
130
  - - ">="
143
131
  - !ruby/object:Gem::Version
144
- version: 4.0.1
132
+ version: 5.0.6
145
133
  type: :runtime
146
134
  prerelease: false
147
135
  version_requirements: !ruby/object:Gem::Requirement
148
136
  requirements:
149
137
  - - "~>"
150
138
  - !ruby/object:Gem::Version
151
- version: '4.0'
139
+ version: '5.0'
152
140
  - - ">="
153
141
  - !ruby/object:Gem::Version
154
- version: 4.0.1
142
+ version: 5.0.6
155
143
  - !ruby/object:Gem::Dependency
156
144
  name: redis-namespace
157
145
  requirement: !ruby/object:Gem::Requirement
158
146
  requirements:
159
147
  - - "~>"
160
148
  - !ruby/object:Gem::Version
161
- version: '1.6'
162
- - - ">="
149
+ version: '1.10'
150
+ type: :runtime
151
+ prerelease: false
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ requirements:
154
+ - - "~>"
155
+ - !ruby/object:Gem::Version
156
+ version: '1.10'
157
+ - !ruby/object:Gem::Dependency
158
+ name: httparty
159
+ requirement: !ruby/object:Gem::Requirement
160
+ requirements:
161
+ - - "~>"
163
162
  - !ruby/object:Gem::Version
164
- version: 1.6.0
163
+ version: 0.21.0
165
164
  type: :runtime
166
165
  prerelease: false
167
166
  version_requirements: !ruby/object:Gem::Requirement
168
167
  requirements:
169
168
  - - "~>"
170
169
  - !ruby/object:Gem::Version
171
- version: '1.6'
172
- - - ">="
170
+ version: 0.21.0
171
+ - !ruby/object:Gem::Dependency
172
+ name: jwt
173
+ requirement: !ruby/object:Gem::Requirement
174
+ requirements:
175
+ - - "~>"
173
176
  - !ruby/object:Gem::Version
174
- version: 1.6.0
177
+ version: '2.7'
178
+ type: :runtime
179
+ prerelease: false
180
+ version_requirements: !ruby/object:Gem::Requirement
181
+ requirements:
182
+ - - "~>"
183
+ - !ruby/object:Gem::Version
184
+ version: '2.7'
175
185
  - !ruby/object:Gem::Dependency
176
- name: httparty
186
+ name: activesupport
177
187
  requirement: !ruby/object:Gem::Requirement
178
188
  requirements:
179
189
  - - "~>"
180
190
  - !ruby/object:Gem::Version
181
- version: '0.21'
191
+ version: '7.0'
182
192
  - - ">="
183
193
  - !ruby/object:Gem::Version
184
- version: 0.16.2
194
+ version: 7.0.4.3
185
195
  type: :runtime
186
196
  prerelease: false
187
197
  version_requirements: !ruby/object:Gem::Requirement
188
198
  requirements:
189
199
  - - "~>"
190
200
  - !ruby/object:Gem::Version
191
- version: '0.21'
201
+ version: '7.0'
192
202
  - - ">="
193
203
  - !ruby/object:Gem::Version
194
- version: 0.16.2
204
+ version: 7.0.4.3
195
205
  - !ruby/object:Gem::Dependency
196
- name: jwt
206
+ name: json
197
207
  requirement: !ruby/object:Gem::Requirement
198
208
  requirements:
199
209
  - - "~>"
200
210
  - !ruby/object:Gem::Version
201
- version: '2.1'
211
+ version: '2.6'
202
212
  - - ">="
203
213
  - !ruby/object:Gem::Version
204
- version: 2.1.0
214
+ version: 2.6.3
205
215
  type: :runtime
206
216
  prerelease: false
207
217
  version_requirements: !ruby/object:Gem::Requirement
208
218
  requirements:
209
219
  - - "~>"
210
220
  - !ruby/object:Gem::Version
211
- version: '2.1'
221
+ version: '2.6'
212
222
  - - ">="
213
223
  - !ruby/object:Gem::Version
214
- version: 2.1.0
224
+ version: 2.6.3
215
225
  description: A Ruby gem to verify the signature of Firebase ID Tokens. It uses Redis
216
226
  to store Google's x509 certificates and manage their expiration time, so you don't
217
227
  need to request Google's API in every execution and can access it as fast as reading
@@ -222,8 +232,10 @@ executables: []
222
232
  extensions: []
223
233
  extra_rdoc_files: []
224
234
  files:
235
+ - ".github/workflows/test.yml"
225
236
  - ".gitignore"
226
237
  - ".rspec"
238
+ - ".ruby-version"
227
239
  - ".travis.yml"
228
240
  - ".yardopts"
229
241
  - CHANGELOG.md
@@ -275,7 +287,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
275
287
  - !ruby/object:Gem::Version
276
288
  version: '0'
277
289
  requirements: []
278
- rubygems_version: 3.2.3
290
+ rubygems_version: 3.4.10
279
291
  signing_key:
280
292
  specification_version: 4
281
293
  summary: A Firebase ID Token verifier.