apple_id 1.5.0 → 1.6.4
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 +4 -4
- data/.github/workflows/spec.yml +31 -0
- data/CHANGELOG.md +30 -0
- data/README.md +1 -1
- data/VERSION +1 -1
- data/apple_id.gemspec +3 -3
- data/lib/apple_id/client.rb +5 -3
- data/lib/apple_id/event_token/event.rb +9 -0
- data/lib/apple_id/jwks.rb +2 -2
- metadata +14 -13
- data/.travis.yml +0 -10
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c046d068616210402adb14f58276b0aa984c6b7d308457bae068ba78d4b06795
|
|
4
|
+
data.tar.gz: 91d102d2c9bca0c22f328887f69baa0ced4d14c2f425ac1c52114735dba6d144
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b58d74bb0f479d09e7ab807c826467852ed70a101859a64b5063a7bbefcca5067928eed699c2120e146aa089a1907c8a345d696836545566219f69b671d7c849
|
|
7
|
+
data.tar.gz: 1fbb9fe991a92cfa7838492831a76c6378a292c83b2ae6566053e578477095d054bd3ef1d2758f534507d3d7e50b892ca7c3a07ba204426b58093216ff59a655
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
name: Spec
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
pull_request:
|
|
8
|
+
|
|
9
|
+
permissions:
|
|
10
|
+
contents: read
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
spec:
|
|
14
|
+
strategy:
|
|
15
|
+
matrix:
|
|
16
|
+
os: ['ubuntu-20.04', 'ubuntu-22.04']
|
|
17
|
+
ruby-version: ['3.1', '3.2', '3.3']
|
|
18
|
+
include:
|
|
19
|
+
- os: 'ubuntu-20.04'
|
|
20
|
+
ruby-version: '3.0'
|
|
21
|
+
runs-on: ${{ matrix.os }}
|
|
22
|
+
|
|
23
|
+
steps:
|
|
24
|
+
- uses: actions/checkout@v3
|
|
25
|
+
- name: Set up Ruby
|
|
26
|
+
uses: ruby/setup-ruby@v1
|
|
27
|
+
with:
|
|
28
|
+
ruby-version: ${{ matrix.ruby-version }}
|
|
29
|
+
bundler-cache: true
|
|
30
|
+
- name: Run Specs
|
|
31
|
+
run: bundle exec rake spec
|
data/CHANGELOG.md
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
## [Unreleased]
|
|
2
|
+
|
|
3
|
+
## [1.6.2] - 2022-10-20
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- rescue un-parsable / non-hash error response https://github.com/nov/apple_id/commit/75a35e9d15fa2af299237ceb3b71def819e9cc03
|
|
8
|
+
|
|
9
|
+
## [1.6.2] - 2022-10-14
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
|
|
13
|
+
- stringify jwt secret, faraday does not do so automatically https://github.com/nov/apple_id/commit/660ba5f8036279b111abc75a2708b945d4ab0be9
|
|
14
|
+
|
|
15
|
+
## [1.6.1] - 2022-10-14
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
|
|
19
|
+
- fix json response handling https://github.com/nov/apple_id/commit/3b6199b56de2eda0b35fcb13a76438916961ba47
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
## [1.6.0] - 2022-10-09
|
|
23
|
+
|
|
24
|
+
### Added
|
|
25
|
+
|
|
26
|
+
- start recording CHANGELOG
|
|
27
|
+
|
|
28
|
+
### Changed
|
|
29
|
+
|
|
30
|
+
- updated underlying gems and use faraday instead of httpclient through them https://github.com/nov/apple_id/commit/055de30ce6f7beb2e034ab99f6f46a1de7004111
|
data/README.md
CHANGED
|
@@ -44,4 +44,4 @@ The gem is available as open source under the terms of the [MIT License](https:/
|
|
|
44
44
|
|
|
45
45
|
## Code of Conduct
|
|
46
46
|
|
|
47
|
-
Everyone interacting in the AppleID project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/nov/apple_id/blob/
|
|
47
|
+
Everyone interacting in the AppleID project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/nov/apple_id/blob/main/CODE_OF_CONDUCT.md).
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.
|
|
1
|
+
1.6.4
|
data/apple_id.gemspec
CHANGED
|
@@ -18,9 +18,9 @@ Gem::Specification.new do |spec|
|
|
|
18
18
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
19
19
|
spec.require_paths = ['lib']
|
|
20
20
|
|
|
21
|
-
spec.add_runtime_dependency 'json-jwt', '~> 1.
|
|
22
|
-
spec.add_runtime_dependency 'rack-oauth2', '~>
|
|
23
|
-
spec.add_runtime_dependency 'openid_connect', '~>
|
|
21
|
+
spec.add_runtime_dependency 'json-jwt', '~> 1.16'
|
|
22
|
+
spec.add_runtime_dependency 'rack-oauth2', '~> 2.0'
|
|
23
|
+
spec.add_runtime_dependency 'openid_connect', '~> 2.2'
|
|
24
24
|
spec.add_development_dependency 'bundler'
|
|
25
25
|
spec.add_development_dependency 'rake'
|
|
26
26
|
spec.add_development_dependency 'rspec'
|
data/lib/apple_id/client.rb
CHANGED
|
@@ -34,7 +34,7 @@ module AppleID
|
|
|
34
34
|
exp: 1.minutes.from_now
|
|
35
35
|
)
|
|
36
36
|
jwt.kid = key_id
|
|
37
|
-
jwt.sign(private_key)
|
|
37
|
+
jwt.sign(private_key).to_s
|
|
38
38
|
end
|
|
39
39
|
|
|
40
40
|
def setup_required_scope(scopes)
|
|
@@ -45,13 +45,15 @@ module AppleID
|
|
|
45
45
|
end
|
|
46
46
|
|
|
47
47
|
def handle_success_response(response)
|
|
48
|
-
token_hash =
|
|
48
|
+
token_hash = response.body.with_indifferent_access
|
|
49
49
|
AccessToken.new token_hash.delete(:access_token), token_hash.merge(client: self)
|
|
50
50
|
end
|
|
51
51
|
|
|
52
52
|
def handle_error_response(response)
|
|
53
|
-
error =
|
|
53
|
+
error = response.body.with_indifferent_access
|
|
54
54
|
raise Error.new(response.status, error)
|
|
55
|
+
rescue Faraday::ParsingError, NoMethodError
|
|
56
|
+
raise Error.new(response.status, error: 'Unknown', error_description: response.body)
|
|
55
57
|
end
|
|
56
58
|
end
|
|
57
59
|
end
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
module AppleID
|
|
2
2
|
class EventToken::Event < OpenIDConnect::ConnectObject
|
|
3
3
|
attr_required :type, :sub, :event_time
|
|
4
|
+
attr_optional :email, :is_private_email
|
|
4
5
|
|
|
5
6
|
module Type
|
|
6
7
|
EMAIL_ENABLED = 'email-enabled'
|
|
@@ -26,6 +27,14 @@ module AppleID
|
|
|
26
27
|
end
|
|
27
28
|
alias_method :account_delete?, :account_deleted?
|
|
28
29
|
|
|
30
|
+
def is_private_email?
|
|
31
|
+
if is_private_email.is_a? String
|
|
32
|
+
is_private_email == 'true'
|
|
33
|
+
else
|
|
34
|
+
!!is_private_email
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
29
38
|
class << self
|
|
30
39
|
def decode(json_string)
|
|
31
40
|
new JSON.parse(json_string).with_indifferent_access
|
data/lib/apple_id/jwks.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: apple_id
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.6.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- nov
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2023-12-27 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: json-jwt
|
|
@@ -16,42 +16,42 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: 1.
|
|
19
|
+
version: '1.16'
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
24
|
- - "~>"
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: 1.
|
|
26
|
+
version: '1.16'
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: rack-oauth2
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
30
30
|
requirements:
|
|
31
31
|
- - "~>"
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version:
|
|
33
|
+
version: '2.0'
|
|
34
34
|
type: :runtime
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
38
|
- - "~>"
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version:
|
|
40
|
+
version: '2.0'
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: openid_connect
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
45
|
- - "~>"
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version:
|
|
47
|
+
version: '2.2'
|
|
48
48
|
type: :runtime
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
52
|
- - "~>"
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
|
-
version:
|
|
54
|
+
version: '2.2'
|
|
55
55
|
- !ruby/object:Gem::Dependency
|
|
56
56
|
name: bundler
|
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -144,9 +144,10 @@ extensions: []
|
|
|
144
144
|
extra_rdoc_files: []
|
|
145
145
|
files:
|
|
146
146
|
- ".github/FUNDING.yml"
|
|
147
|
+
- ".github/workflows/spec.yml"
|
|
147
148
|
- ".gitignore"
|
|
148
149
|
- ".rspec"
|
|
149
|
-
-
|
|
150
|
+
- CHANGELOG.md
|
|
150
151
|
- CODE_OF_CONDUCT.md
|
|
151
152
|
- Gemfile
|
|
152
153
|
- LICENSE.txt
|
|
@@ -169,7 +170,7 @@ homepage: https://github.com/nov/apple_id
|
|
|
169
170
|
licenses:
|
|
170
171
|
- MIT
|
|
171
172
|
metadata: {}
|
|
172
|
-
post_install_message:
|
|
173
|
+
post_install_message:
|
|
173
174
|
rdoc_options: []
|
|
174
175
|
require_paths:
|
|
175
176
|
- lib
|
|
@@ -184,8 +185,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
184
185
|
- !ruby/object:Gem::Version
|
|
185
186
|
version: '0'
|
|
186
187
|
requirements: []
|
|
187
|
-
rubygems_version: 3.
|
|
188
|
-
signing_key:
|
|
188
|
+
rubygems_version: 3.4.10
|
|
189
|
+
signing_key:
|
|
189
190
|
specification_version: 4
|
|
190
191
|
summary: Sign-in with Apple Backend
|
|
191
192
|
test_files: []
|