omniauth-aitu-passport 0.1.22 → 0.1.26

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: e92c64e77c4f3de63c2aff68dcbadfe6dda5156dc980ceffab4237a7724b59da
4
- data.tar.gz: c6ad628463a5f8b94fd9d5aed018a8a0a7e2ffdcbf1e7a65be7ed7e8ae47c684
3
+ metadata.gz: ed9f43131e0356fa3011a05bb6c8928943718ffe2716426a04051f9ea2805cd9
4
+ data.tar.gz: 8dadf7133bc547aa229fe6e736825b79659f16bcbbdb892aa02ffd39b137f3d1
5
5
  SHA512:
6
- metadata.gz: 476c648beb600866d42140573a23df270c6487b4088b86456f963a90b1b5443e923e3a5169c81d96d2deb9589e000df85be6123ed7bfd3f96a2e0b0c1373f3ac
7
- data.tar.gz: 0e4a5f660903eab42f3392705737b1478c4e9a88572f8e3cc80e3635e9daacf48ce25b7d5d5150a1f483fd0e4eaa880e1a3e37ef79b3366b06a11e544dd14571
6
+ metadata.gz: 483dfd398af835545691c9efe60ffa11f45e6f6040fe047fd774f6a419707aeef7fb2c91a0506a70d837882fefad623e5efa262bf32239e378ab848f78bc4b65
7
+ data.tar.gz: b62d08dadc3a9537e51310f725b607ddd1fd7b30a80580bed692c90b27aa8b480255f7b1096a53861bf3154785594f05c6b585c681c1a73688dac65c94b27ef8
data/CHANGELOG.md CHANGED
@@ -1,8 +1,20 @@
1
- # v 0.1.21
1
+ # v 0.1.25
2
+
3
+ Added:
4
+ - id_token: support with JWT verification
5
+
6
+
7
+ # v 0.1.24
8
+
9
+ Added:
10
+ - [wallet_read, wallet] scope options, regarding to https://docs.passport.aitu.io/#operation/oauthAuth
11
+
12
+ # v 0.1.22
2
13
  Added:
3
14
  - session_id added to auth link according to
4
15
  https://docs.passport.aitu.io/#tag/Poluchenie-identifikatora-oauth-sessii
5
16
  - PASSPORT_STAGING env option
17
+ - token_url moved to /api/v1
6
18
 
7
19
  Removed:
8
20
  - setup binaries
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- omniauth-aitu-passport (0.1.21)
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.22'
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
@@ -40,10 +42,14 @@ module OmniAuth
40
42
  identification_document_ocr
41
43
  identification_document_mrz
42
44
  idpc_verification
45
+ wallet_read
46
+ wallet
43
47
  ].freeze
44
48
 
45
49
  DEFAULT_SCOPE = 'openid phone'
46
50
 
51
+ ALLOWED_ISS = %w[https://passport.stage.supreme-team.tech https://passport.aitu.io].freeze
52
+
47
53
  uid { raw_info['openid'] }
48
54
 
49
55
  info do
@@ -57,9 +63,31 @@ module OmniAuth
57
63
  end
58
64
 
59
65
  extra do
60
- {
61
- 'raw_info' => raw_info
62
- }
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
63
91
  end
64
92
 
65
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.22
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-22 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