twitter_oauth2 0.3.0 → 0.4.0

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: a3fd74a639d0b5217a59d0d8f1dd573f57458fac49ca9ec80eb41e061d061c0e
4
- data.tar.gz: a688d0dc6bb2d8bf702d95149bfa5f184825de78cde6e9d2fa1c287343d529c1
3
+ metadata.gz: f122e87aaf15c361806ef0e5b433d4581e5917602ccb1ecdc3ffc143dccb8c9a
4
+ data.tar.gz: ab48249dd3d6ef1d43028bb9fd80896a3b6f9dd051dd3def027cc92d6f6da7a9
5
5
  SHA512:
6
- metadata.gz: b29998b2bf147f510b8e82cdfa576d7f262da34f9717229cd8495bba0d473542a5275a86b1d30f7a2c6bbd4b4142fb8823c3030428e4273b636b3835f1acd251
7
- data.tar.gz: 2433d26ad4187321ba4af6c0b3f8b059a95b3ffb616fcacd8becc7fa8dc2fab672c6628937eec7bc68a11f43181e3387ec6d24ee6ef55bcc7cfeb857497d5346
6
+ metadata.gz: 3e28f5eef3c5b78cc78ef8fe46afb019bed576d9ee45a7f6ae74a9618fda9d3e6e549bd189c702dcaafa85d4ee148745b034c2fb5cefac1bfe9c849683e7b035
7
+ data.tar.gz: bc2708b3af710699168313319fa51b47a63cd640a1998b65b5890143f450203e20f5e948040577420adf2f8d2871f718e219e16c1f7a697e8655bcf5097e3e97
data/README.md CHANGED
@@ -38,15 +38,15 @@ authorization_uri = client.authorization_uri(
38
38
  :'users.read',
39
39
  :'tweet.read',
40
40
  :'offline.access'
41
- ],
42
- state: SecureRandom.hex(16)
43
41
  )
44
42
 
45
43
  # NOTE:
46
- # When 'TwitterOAuth2::Client#authorization_uri is called,
47
- # PKCE `code_verifier` is automatically generated.
44
+ # When `TwitterOAuth2::Client#authorization_uri` is called,
45
+ # PKCE `code_verifier` and `state` are automatically generated.
48
46
  # You can get it here.
47
+
49
48
  code_verifier = client.code_verifier
49
+ state = client.state
50
50
 
51
51
  puts authorization_uri
52
52
  `open "#{authorization_uri}"`
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.0
1
+ 0.4.0
@@ -1,6 +1,6 @@
1
1
  module TwitterOAuth2
2
2
  class Client < Rack::OAuth2::Client
3
- attr_accessor :code_verifier
3
+ attr_accessor :code_verifier, :code_challenge, :code_challenge_method, :state
4
4
 
5
5
  def initialize(attributes)
6
6
  attributes_with_default = {
@@ -11,10 +11,11 @@ module TwitterOAuth2
11
11
  end
12
12
 
13
13
  def authorization_uri(params = {})
14
- code_challenge = pkce_session!
14
+ authorization_session!
15
15
  authorization_uri = super({
16
16
  code_challenge: code_challenge,
17
- code_challenge_method: :s256
17
+ code_challenge_method: code_challenge_method,
18
+ state: state
18
19
  }.merge(params))
19
20
  end
20
21
 
@@ -27,15 +28,20 @@ module TwitterOAuth2
27
28
 
28
29
  private
29
30
 
30
- def pkce_session!
31
+ def authorization_session!
32
+ self.state = Base64.urlsafe_encode64(
33
+ SecureRandom.random_bytes(16),
34
+ padding: false
35
+ )
31
36
  self.code_verifier = Base64.urlsafe_encode64(
32
37
  SecureRandom.random_bytes(32),
33
38
  padding: false
34
39
  )
35
- Base64.urlsafe_encode64(
40
+ self.code_challenge = Base64.urlsafe_encode64(
36
41
  OpenSSL::Digest::SHA256.digest(code_verifier),
37
42
  padding: false
38
43
  )
44
+ self.code_challenge_method = :s256
39
45
  end
40
46
  end
41
47
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: twitter_oauth2
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - nov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-10-02 00:00:00.000000000 Z
11
+ date: 2021-10-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack-oauth2