omniauth-aitu-passport 0.1.24 → 0.1.26

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7a58e50932132dada555e296ab35d8164105768c7aed6f411315705cb13a6183
4
- data.tar.gz: 63e2743ae7099c59911bd5518e023fabda97982ab8d680285e2395aa2f755b56
3
+ metadata.gz: ed9f43131e0356fa3011a05bb6c8928943718ffe2716426a04051f9ea2805cd9
4
+ data.tar.gz: 8dadf7133bc547aa229fe6e736825b79659f16bcbbdb892aa02ffd39b137f3d1
5
5
  SHA512:
6
- metadata.gz: 1772e65d6e68a2a25c6bbae50491b0a77d5696a04f4895e4ba16a4748b0ec0e1ede16fe14a4169503f054c6b1aeefcfa622b29b8332f1e5fbec7b771c9b2f28a
7
- data.tar.gz: 4aba6961aa2168b0d80812b80b8d31b0e9a85923b09c786c904f13668af7dea2f2c358ad0eda013fb86147bf69d94f3f6d1d448f0c127da8fe27012d88eda11e
6
+ metadata.gz: 483dfd398af835545691c9efe60ffa11f45e6f6040fe047fd774f6a419707aeef7fb2c91a0506a70d837882fefad623e5efa262bf32239e378ab848f78bc4b65
7
+ data.tar.gz: b62d08dadc3a9537e51310f725b607ddd1fd7b30a80580bed692c90b27aa8b480255f7b1096a53861bf3154785594f05c6b585c681c1a73688dac65c94b27ef8
data/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ # v 0.1.25
2
+
3
+ Added:
4
+ - id_token: support with JWT verification
5
+
6
+
1
7
  # v 0.1.24
2
8
 
3
9
  Added:
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- omniauth-aitu-passport (0.1.23)
4
+ omniauth-aitu-passport (0.1.25)
5
5
  oauth2 (~> 1.4.7)
6
6
  omniauth (~> 1)
7
7
  omniauth-oauth2 (~> 1)
@@ -2,6 +2,6 @@
2
2
 
3
3
  module OmniAuth
4
4
  module AituPassport
5
- VERSION = '0.1.24'
5
+ VERSION = '0.1.26'
6
6
  end
7
7
  end
@@ -3,6 +3,7 @@
3
3
  require 'omniauth'
4
4
  require 'oauth2'
5
5
  require 'omniauth-oauth2'
6
+ require 'jwt'
6
7
 
7
8
  module OmniAuth
8
9
  module Strategies
@@ -19,6 +20,7 @@ module OmniAuth
19
20
  }
20
21
 
21
22
  option :pkce, true
23
+ option :jwt_leeway, 60
22
24
 
23
25
  AVAILABLE_SCOPE_OPTIONS = %w[
24
26
  openid
@@ -46,6 +48,8 @@ module OmniAuth
46
48
 
47
49
  DEFAULT_SCOPE = 'openid phone'
48
50
 
51
+ ALLOWED_ISS = %w[https://passport.stage.supreme-team.tech https://passport.aitu.io].freeze
52
+
49
53
  uid { raw_info['openid'] }
50
54
 
51
55
  info do
@@ -59,9 +63,31 @@ module OmniAuth
59
63
  end
60
64
 
61
65
  extra do
62
- {
63
- 'raw_info' => raw_info
64
- }
66
+ hash = {}
67
+ hash[:id_token] = access_token['id_token']
68
+ if !options[:skip_jwt] && !access_token['id_token'].nil?
69
+ decoded = ::JWT.decode(access_token['id_token'], nil, false).first
70
+
71
+ # We have to manually verify the claims because the third parameter to
72
+ # JWT.decode is false since no verification key is provided.
73
+ ::JWT::Verify.verify_claims(decoded,
74
+ verify_iss: true,
75
+ iss: ALLOWED_ISS,
76
+ verify_aud: true,
77
+ aud: options.client_id,
78
+ verify_sub: false,
79
+ verify_expiration: true,
80
+ verify_not_before: true,
81
+ verify_iat: false,
82
+ verify_jti: false,
83
+ leeway: options[:jwt_leeway])
84
+
85
+ hash[:id_info] = decoded
86
+ end
87
+ hash[:raw_info] = raw_info unless skip_info?
88
+
89
+ # returning resulting hash
90
+ hash
65
91
  end
66
92
 
67
93
  # Omniauth::Strategy
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omniauth-aitu-passport
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.24
4
+ version: 0.1.26
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yaroslav Shevchenko
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-03-30 00:00:00.000000000 Z
11
+ date: 2022-04-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: oauth2