omniauth-aitu-passport 0.1.14 → 0.1.23

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: 3f0cb5da5735e7c845c698203b2763b05e92002775c12bb524568c08426ae7bc
4
- data.tar.gz: 965cf2e6ad7157f3aee3b4e1807d4316f01dbfa6cca2a17ea5aa3ba2136a6d81
3
+ metadata.gz: 98d393721a073d223529459f4764f1e145c83b85e7913b60b52d9f57eee582e7
4
+ data.tar.gz: 6925498fdfe8e4be681c6c25813c5e6a7a6a225100baf44eeb67bd10c3408d74
5
5
  SHA512:
6
- metadata.gz: 1bf083c693dd1e270cc377d58cd655a7befef3adf98a216934b94e3666f2e15b0acb2fe24b81fcfcb6d9e98aad9950bc2b1d4809c521f8c755a8188d0a453874
7
- data.tar.gz: '084411c264ec363031a43c75490c569d41a47704d9488fc1330874b30710a745b28d48cf9dab7bad6dc34fc8272c45d0d6c75c515c9062b72785259e810a4ef0'
6
+ metadata.gz: 66df465f4ebdec49db3a701efa69161687c3667a147991307a67014d331845d6f79b6c4bae272a66e7d02f7e2409d62d7e94c1707d0889a5033005e70ddc9b08
7
+ data.tar.gz: 8b98ac5e8e213fe9c23a8d190fdf6252ff7eb11e44d290b6d35b99385c86b3377a6a28998ebfa9a21679ba44c79a05e854d5ddd3ca5fd2dfcfc3f67157fcc05b
data/CHANGELOG.md CHANGED
@@ -1,15 +1,40 @@
1
- # v 0.1.6
1
+ # v 0.1.23
2
2
 
3
- Added:
4
- - Scope filtered to avoid malformed_scope errors
3
+ Added:
4
+ - wallet_read scope option, regarding to https://docs.passport.aitu.io/#operation/oauthAuth
5
5
 
6
- Removed:
7
- - None
6
+ # v 0.1.22
7
+ Added:
8
+ - session_id added to auth link according to
9
+ https://docs.passport.aitu.io/#tag/Poluchenie-identifikatora-oauth-sessii
10
+ - PASSPORT_STAGING env option
11
+ - token_url moved to /api/v1
12
+
13
+ Removed:
14
+ - setup binaries
15
+
16
+ # v 0.1.9
17
+ Fixed:
18
+ - possible NoMethod error in guard clause
19
+
20
+ Added:
21
+ - Base test cases
22
+ - Rubocop inspections
8
23
 
9
24
  # v 0.1.8
10
25
 
11
26
  Added:
12
27
  - redirect_uri accepted once in :options
13
28
 
29
+ Removed:
30
+ - None
31
+
32
+
33
+ # v 0.1.6
34
+
35
+ Added:
36
+ - Scope filtered to avoid malformed_scope errors
37
+
14
38
  Removed:
15
- - None
39
+ - None
40
+
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- omniauth-aitu-passport (0.1.13)
4
+ omniauth-aitu-passport (0.1.23)
5
5
  oauth2 (~> 1.4.7)
6
6
  omniauth (~> 1)
7
7
  omniauth-oauth2 (~> 1)
data/README.md CHANGED
@@ -43,12 +43,15 @@ Rails.application.config.middleware.use OmniAuth::Builder do
43
43
  provider :aitu_passport,
44
44
  ENV['PASSPORT_KEY'],
45
45
  ENV['PASSPORT_SECRET'],
46
- {
46
+ {
47
47
  scope: 'phone first_name middle_name last_name gender openid',
48
48
  response_type: 'code',
49
49
  client_id: ENV['PASSPORT_KEY'],
50
50
  provider_ignores_state: Rails.env == 'production' ? false : true,
51
- redirect_uri: ENV['PASSPORT_REDIRECT_URI']
51
+ redirect_uri: ENV['PASSPORT_REDIRECT_URI'],
52
+ token_params: {
53
+ redirect_uri: ENV['PASSPORT_REDIRECT_URI']
54
+ }
52
55
  }
53
56
  end
54
57
 
@@ -57,6 +60,17 @@ OmniAuth.config.logger = Rails.logger
57
60
  ```
58
61
  using the keys you receive and URI you provided when registered the app
59
62
 
63
+ Please note :redirect_uri param under :token_params is mandatory option.
64
+
65
+ Also, you can use
66
+
67
+ ```yaml
68
+ ENV['PASSPORT_STAGING']: true
69
+ ```
70
+
71
+ option in your environment to send auth requests to staging AituPassport server,
72
+ e.g. https://passport.stage.supreme-team.tech
73
+
60
74
  4. Use it in your sessions controller on your own, assuming the following envs to store the data you need
61
75
 
62
76
  ```ruby
@@ -70,8 +84,6 @@ using the keys you receive and URI you provided when registered the app
70
84
 
71
85
  ## Development
72
86
 
73
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
74
-
75
87
  To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org).
76
88
 
77
89
  ## Contributing
@@ -2,6 +2,6 @@
2
2
 
3
3
  module OmniAuth
4
4
  module AituPassport
5
- VERSION = '0.1.14'
5
+ VERSION = '0.1.23'
6
6
  end
7
7
  end
@@ -12,12 +12,13 @@ module OmniAuth
12
12
 
13
13
  option :client_options, {
14
14
  site: 'https://passport.aitu.io',
15
- token_url: '/oauth2/token',
15
+ token_url: '/api/v1/oauth/token',
16
16
  authorize_url: '/oauth2/auth',
17
+ session_url: '/api/v1/oauth/session',
17
18
  auth_scheme: :basic_auth
18
19
  }
19
20
 
20
- option :pkce, false
21
+ option :pkce, true
21
22
 
22
23
  AVAILABLE_SCOPE_OPTIONS = %w[
23
24
  openid
@@ -39,6 +40,7 @@ module OmniAuth
39
40
  identification_document_ocr
40
41
  identification_document_mrz
41
42
  idpc_verification
43
+ wallet_read
42
44
  ].freeze
43
45
 
44
46
  DEFAULT_SCOPE = 'openid phone'
@@ -68,7 +70,7 @@ module OmniAuth
68
70
  # Raising up an error if redirect_uri is missing
69
71
  raise ArgumentError, 'Wrong options: redirect_uri option is missing.' unless options[:redirect_uri]
70
72
 
71
- options[:token_params][:redirect_uri] = options[:redirect_uri] unless options[:token_params][:redirect_uri]
73
+ options[:client_options][:site] = 'https://passport.stage.supreme-team.tech' if ENV['PASSPORT_STAGING']
72
74
  end
73
75
  end
74
76
 
@@ -76,6 +78,8 @@ module OmniAuth
76
78
  def authorize_params
77
79
  super.tap do |params|
78
80
  params[:scope] = filter_scope(params)
81
+ params[:redirect_uri] = options[:redirect_uri]
82
+ params[:session_id] = get_session_id
79
83
  end
80
84
  end
81
85
 
@@ -85,6 +89,21 @@ module OmniAuth
85
89
 
86
90
  private
87
91
 
92
+ def get_session_id
93
+ params = ::OAuth2::Authenticator.new(client.id, client.secret, client.options[:auth_scheme]).apply({})
94
+ res = client.request(:post, session_url, params)
95
+ case res.status
96
+ when 200
97
+ JSON.parse(res.body).dig('sessionId')
98
+ else
99
+ raise NoSessionError, 'No session ID received, sorry.'
100
+ end
101
+ end
102
+
103
+ def session_url
104
+ options[:client_options][:site] + options[:client_options][:session_url]
105
+ end
106
+
88
107
  def filter_scope(params)
89
108
  return DEFAULT_SCOPE unless params[:scope]
90
109
 
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.14
4
+ version: 0.1.23
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-15 00:00:00.000000000 Z
11
+ date: 2022-03-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: oauth2
@@ -112,8 +112,6 @@ files:
112
112
  - LICENSE.txt
113
113
  - README.md
114
114
  - Rakefile
115
- - bin/console
116
- - bin/setup
117
115
  - lib/omniauth-aitu-passport.rb
118
116
  - lib/omniauth/aitu_passport.rb
119
117
  - lib/omniauth/aitu_passport/version.rb
data/bin/console DELETED
@@ -1,15 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
-
4
- require 'bundler/setup'
5
- require 'omniauth/aitu/passport'
6
-
7
- # You can add fixtures and/or initialization code here to make experimenting
8
- # with your gem easier. You can also use a different console, if you like.
9
-
10
- # (If you use this, don't forget to add pry to your Gemfile!)
11
- # require "pry"
12
- # Pry.start
13
-
14
- require 'irb'
15
- IRB.start(__FILE__)
data/bin/setup DELETED
@@ -1,8 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
- IFS=$'\n\t'
4
- set -vx
5
-
6
- bundle install
7
-
8
- # Do any other automated setup that you need to do here