twilio-ruby 4.8.3.edge → 4.9.0.edge
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/CHANGES.md +7 -0
- data/lib/twilio-ruby/util/access_token.rb +11 -2
- data/lib/twilio-ruby/version.rb +1 -1
- data/spec/util/access_token_spec.rb +31 -12
- metadata +19 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3df7f4447f76cf5658ab7eecf38d45adffd783e6
|
4
|
+
data.tar.gz: 1d9ed7dc9443d66e611b169d3a02bde26c6d0108
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 327717db3f366626c47f3df545cb3263ee387325acff399d881e3e7956948e04638246c2f31a65173040f4bab3adb9e8eda3371643262a3373180fcabc8f2217
|
7
|
+
data.tar.gz: 50c4747eb0c2a2d6008e14ac8552577a256405c854ec5b0b5315a285b506f6c95f2615f86f88f93ab440721ab25fbaff94af2cd3adf55823826b9a9d6b46f3de
|
data/CHANGES.md
CHANGED
@@ -1,12 +1,20 @@
|
|
1
1
|
module Twilio
|
2
2
|
module Util
|
3
3
|
class AccessToken
|
4
|
-
|
4
|
+
attr_accessor :account_sid,
|
5
|
+
:signing_key_id,
|
6
|
+
:secret,
|
7
|
+
:ttl,
|
8
|
+
:identity,
|
9
|
+
:nbf
|
10
|
+
|
11
|
+
def initialize(account_sid, signing_key_id, secret, ttl=3600, identity=nil, nbf=nil)
|
5
12
|
@account_sid = account_sid
|
6
13
|
@signing_key_sid = signing_key_id
|
7
14
|
@secret = secret
|
8
15
|
@ttl = ttl
|
9
16
|
@identity = identity
|
17
|
+
@nbf = nbf
|
10
18
|
@grants = []
|
11
19
|
end
|
12
20
|
|
@@ -32,10 +40,11 @@ module Twilio
|
|
32
40
|
'jti' => "#{@signing_key_sid}-#{now}",
|
33
41
|
'iss' => @signing_key_sid,
|
34
42
|
'sub' => @account_sid,
|
35
|
-
'nbf' => now,
|
36
43
|
'exp' => now + @ttl,
|
37
44
|
'grants' => grants
|
38
45
|
}
|
46
|
+
payload['nbf'] = @nbf unless @nbf.nil?
|
47
|
+
|
39
48
|
JWT.encode payload, @secret, algorithm, headers
|
40
49
|
end
|
41
50
|
|
data/lib/twilio-ruby/version.rb
CHANGED
@@ -10,15 +10,37 @@ describe Twilio::Util::AccessToken do
|
|
10
10
|
|
11
11
|
expect(payload['iss']).to eq('SK123')
|
12
12
|
expect(payload['sub']).to eq('AC123')
|
13
|
-
expect(payload['nbf']).not_to be_nil
|
14
13
|
expect(payload['exp']).not_to be_nil
|
15
|
-
expect(payload['
|
14
|
+
expect(payload['exp']).to be >= Time.now.to_i
|
16
15
|
expect(payload['jti']).not_to be_nil
|
17
|
-
expect(
|
16
|
+
expect(payload['jti']).to start_with payload['iss']
|
18
17
|
expect(payload['grants']).not_to be_nil
|
19
18
|
expect(payload['grants'].count).to eq(0)
|
20
19
|
end
|
21
20
|
|
21
|
+
it 'should generate a nbf' do
|
22
|
+
now = Time.now.to_i
|
23
|
+
scat = Twilio::Util::AccessToken.new 'AC123', 'SK123','secret'
|
24
|
+
scat.identity = 'abc'
|
25
|
+
scat.nbf = now
|
26
|
+
|
27
|
+
token = scat.to_s
|
28
|
+
expect(token).not_to be_nil
|
29
|
+
payload, header = JWT.decode token, 'secret'
|
30
|
+
|
31
|
+
expect(payload['iss']).to eq('SK123')
|
32
|
+
expect(payload['sub']).to eq('AC123')
|
33
|
+
expect(payload['nbf']).not_to be_nil
|
34
|
+
expect(payload['nbf']).to eq(now)
|
35
|
+
expect(payload['exp']).not_to be_nil
|
36
|
+
expect(payload['exp']).to be >= Time.now.to_i
|
37
|
+
expect(payload['jti']).not_to be_nil
|
38
|
+
expect(payload['jti']).to start_with payload['iss']
|
39
|
+
expect(payload['grants']).not_to be_nil
|
40
|
+
expect(payload['grants'].count).to eq(1)
|
41
|
+
expect(payload['grants']['identity']).to eq('abc')
|
42
|
+
end
|
43
|
+
|
22
44
|
it 'should be able to add conversation grant' do
|
23
45
|
scat = Twilio::Util::AccessToken.new 'AC123', 'SK123','secret'
|
24
46
|
scat.add_grant(Twilio::Util::AccessToken::ConversationsGrant.new)
|
@@ -29,11 +51,10 @@ describe Twilio::Util::AccessToken do
|
|
29
51
|
|
30
52
|
expect(payload['iss']).to eq('SK123')
|
31
53
|
expect(payload['sub']).to eq('AC123')
|
32
|
-
expect(payload['nbf']).not_to be_nil
|
33
54
|
expect(payload['exp']).not_to be_nil
|
34
|
-
expect(payload['
|
55
|
+
expect(payload['exp']).to be >= Time.now.to_i
|
35
56
|
expect(payload['jti']).not_to be_nil
|
36
|
-
expect(
|
57
|
+
expect(payload['jti']).to start_with payload['iss']
|
37
58
|
expect(payload['grants']).not_to be_nil
|
38
59
|
expect(payload['grants'].count).to eq(1)
|
39
60
|
expect(payload['grants']['rtc']).not_to be_nil
|
@@ -49,11 +70,10 @@ describe Twilio::Util::AccessToken do
|
|
49
70
|
|
50
71
|
expect(payload['iss']).to eq('SK123')
|
51
72
|
expect(payload['sub']).to eq('AC123')
|
52
|
-
expect(payload['nbf']).not_to be_nil
|
53
73
|
expect(payload['exp']).not_to be_nil
|
54
|
-
expect(payload['
|
74
|
+
expect(payload['exp']).to be >= Time.now.to_i
|
55
75
|
expect(payload['jti']).not_to be_nil
|
56
|
-
expect(
|
76
|
+
expect(payload['jti']).to start_with payload['iss']
|
57
77
|
expect(payload['grants']).not_to be_nil
|
58
78
|
expect(payload['grants'].count).to eq(1)
|
59
79
|
expect(payload['grants']['ip_messaging']).not_to be_nil
|
@@ -70,11 +90,10 @@ describe Twilio::Util::AccessToken do
|
|
70
90
|
|
71
91
|
expect(payload['iss']).to eq('SK123')
|
72
92
|
expect(payload['sub']).to eq('AC123')
|
73
|
-
expect(payload['nbf']).not_to be_nil
|
74
93
|
expect(payload['exp']).not_to be_nil
|
75
|
-
expect(payload['
|
94
|
+
expect(payload['exp']).to be >= Time.now.to_i
|
76
95
|
expect(payload['jti']).not_to be_nil
|
77
|
-
expect(
|
96
|
+
expect(payload['jti']).to start_with payload['iss']
|
78
97
|
expect(payload['grants']).not_to be_nil
|
79
98
|
expect(payload['grants'].count).to eq(2)
|
80
99
|
expect(payload['grants']['rtc']).not_to be_nil
|
metadata
CHANGED
@@ -1,69 +1,69 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: twilio-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.9.0.edge
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Benton
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-12-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: multi_json
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 1.3.0
|
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
26
|
version: 1.3.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: builder
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: 2.1.2
|
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
40
|
version: 2.1.2
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: jwt
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - ~>
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '1.0'
|
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
54
|
version: '1.0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: bundler
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - ~>
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '1.5'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - ~>
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '1.5'
|
69
69
|
description: A simple library for communicating with the Twilio REST API, building
|
@@ -76,8 +76,8 @@ extra_rdoc_files:
|
|
76
76
|
- README.md
|
77
77
|
- LICENSE.md
|
78
78
|
files:
|
79
|
-
- .gitignore
|
80
|
-
- .travis.yml
|
79
|
+
- ".gitignore"
|
80
|
+
- ".travis.yml"
|
81
81
|
- AUTHORS.md
|
82
82
|
- CHANGES.md
|
83
83
|
- Gemfile
|
@@ -291,27 +291,27 @@ licenses:
|
|
291
291
|
metadata: {}
|
292
292
|
post_install_message:
|
293
293
|
rdoc_options:
|
294
|
-
- --line-numbers
|
295
|
-
- --inline-source
|
296
|
-
- --title
|
294
|
+
- "--line-numbers"
|
295
|
+
- "--inline-source"
|
296
|
+
- "--title"
|
297
297
|
- twilio-ruby
|
298
|
-
- --main
|
298
|
+
- "--main"
|
299
299
|
- README.md
|
300
300
|
require_paths:
|
301
301
|
- lib
|
302
302
|
required_ruby_version: !ruby/object:Gem::Requirement
|
303
303
|
requirements:
|
304
|
-
- -
|
304
|
+
- - ">="
|
305
305
|
- !ruby/object:Gem::Version
|
306
306
|
version: 1.9.3
|
307
307
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
308
308
|
requirements:
|
309
|
-
- -
|
309
|
+
- - ">"
|
310
310
|
- !ruby/object:Gem::Version
|
311
311
|
version: 1.3.1
|
312
312
|
requirements: []
|
313
313
|
rubyforge_project:
|
314
|
-
rubygems_version: 2.
|
314
|
+
rubygems_version: 2.4.8
|
315
315
|
signing_key:
|
316
316
|
specification_version: 4
|
317
317
|
summary: A simple library for communicating with the Twilio REST API, building TwiML,
|