trusona 2.1.0 → 2.2.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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/.travis.yml +10 -5
- data/README.md +24 -4
- data/certs/trusona.pem +32 -24
- data/lib/trusona/resources/trusonafication.rb +3 -1
- data/lib/trusona/trusonafication.rb +3 -0
- data/lib/trusona/version.rb +1 -1
- data/trusona.key.pem.enc +0 -0
- metadata +34 -26
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 398cae673c18c91ca4edf45a61db8321a4b3a409
|
4
|
+
data.tar.gz: e65a8f49e68558631ade4e92a565c9d9f113cedc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bae3928a80ca2f52a2c4ce3a0d4d8afa4e72d079b8ee73016b28c5efcdb963422ef7b30593125f8dddbae533760395e49abec02157572fb42b63cb6a71f40c81
|
7
|
+
data.tar.gz: 40d854cab5c18fd0451ce85317ed337b10bafc815a35f6dceb2f871a7b477d3f3dbdfc4ceb1cccf54d831da81c71b59c1b98b75ab46c95b02b7ef628ef7cda31
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/.travis.yml
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
sudo: false
|
2
2
|
language: ruby
|
3
3
|
cache:
|
4
|
-
- bundler
|
4
|
+
- bundler
|
5
5
|
rvm:
|
6
|
-
- 2.4.3
|
7
|
-
- 2.5.1
|
8
|
-
before_install:
|
9
|
-
- openssl aes-256-cbc -K $encrypted_b73e363d372e_key -iv $encrypted_b73e363d372e_iv -in trusona.key.pem.enc -out trusona.key.pem -d
|
6
|
+
- 2.4.3
|
7
|
+
- 2.5.1
|
10
8
|
before_script:
|
9
|
+
- openssl aes-256-cbc -K $encrypted_2ddff5084a28_key -iv $encrypted_2ddff5084a28_iv -in trusona.key.pem.enc -out trusona.key.pem -d
|
11
10
|
- curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
|
12
11
|
- chmod +x ./cc-test-reporter
|
13
12
|
- ./cc-test-reporter before-build
|
@@ -26,3 +25,9 @@ deploy:
|
|
26
25
|
on:
|
27
26
|
tags: true
|
28
27
|
rvm: '2.4.3'
|
28
|
+
notifications:
|
29
|
+
slack:
|
30
|
+
on_success: always
|
31
|
+
on_failure: always
|
32
|
+
rooms:
|
33
|
+
- secure: "qRApZOlTg30kMRnRkaF2FrEjsu41iCYWyKH+jBDrw9/27fDxSooSFTrd9zoukyZOsh4j7IcXhM63ZsoOP5eYNc49PsPJlDvSWo3pwp3sQwFpXbbci1axEQeqWr3gwpQ9QiGNbKGelhr6zgMK5Qa41GrgpsAR/7R21SuqDyDczzPgRQQxxbAFUI1hHyDvs4H+/CZdno1y8NKbLqSzwNxnZQFAZlXvrnlTWNL4Afr9MqarTlxvg62FKhBmpExThMhmvh0egcfrH1SEkEn9WECqReO6m+evpK/uF5fFRiBPnOEj+aJswWt0tUoSSATNCOoKSQt6aOpGe6RLpiaUljCHK/0pLAsSXroCiEQ6DSRwEkiGOzMFkrefPIvHQqWMTlJKsO+oJOY4utnRnX+ykg0nQ1+6HZPoUX+E+chlYIIomQ0GMtn7LuT22kXlnuYgv64tc7/wtRlIoQ0oS+Hj0sOz5u3T78eiGn+hXvCaRsfMjq9InP01lFS/3X4mK4fI89L9cTKN+8Kvk072boibGApyusJBzt5SS9LFYS44B6d63pFGlpfZUrSBbwr44jfwCIyWPKuf+7SLzJKzeduRX/2/PIAweMm/yUz6ERAEcw6fYUDziMljhWKZh8ME4B1VAWpUAGR9/Gq4iYCLGRiJ2ajG4CE2Sf7+9W74V6fe1RiAodo="
|
data/README.md
CHANGED
@@ -122,12 +122,31 @@ In the above example, the addition of `user_presence: false` and `prompt: false`
|
|
122
122
|
email: 'user@domain.com'
|
123
123
|
})
|
124
124
|
```
|
125
|
-
In some cases you may be able to send a Trusonafication to a user
|
126
|
-
by specifying their email address. This is the case if one of the following is true:
|
125
|
+
In some cases you may be able to send a Trusonafication to a user by specifying their email address. This is the case if one of the following is true:
|
127
126
|
- You have verified ownership of a domain through the Trusona Developer's site
|
128
127
|
- You have an agreement with Trusona allowing you to send Trusonafications to any email address.
|
129
|
-
Creating a Trusonafication with an email address is similar to the other
|
130
|
-
|
128
|
+
Creating a Trusonafication with an email address is similar to the other use cases, except you use the `email` parameter rather than `user_identifier` or `device_identifier`.
|
129
|
+
|
130
|
+
#### Adding custom fields to a Trusonafication
|
131
|
+
```ruby
|
132
|
+
Trusona::ExecutiveTrusonafication.create(params: {
|
133
|
+
action: 'login',
|
134
|
+
resource: 'Acme Bank',
|
135
|
+
device_identifier: 'Vdza6-JQMfAJePj2H69oMn1YTyXTu73IiYt9oBa3kj',
|
136
|
+
custom_fields: { greeting: 'hello!', last_login: false }
|
137
|
+
})
|
138
|
+
```
|
139
|
+
|
140
|
+
If you are using the mobile SDK to build a custom app that integrates with Trusona, you have the option of including additional data on the Trusonafication which the app can use to affect its behavior.
|
141
|
+
|
142
|
+
For example, you may want to include additional context on the Trusonafication prompt.
|
143
|
+
|
144
|
+
You can add these custom fields by including a `custom_fields` hash as shown above.
|
145
|
+
|
146
|
+
The custom fields will then be available in the Trusonafication received by the SDK.
|
147
|
+
|
148
|
+
Note that the custom fields are not used in the case that the Trusonafication is being handled by the Trusona app.
|
149
|
+
|
131
150
|
|
132
151
|
#### An Executive level Trusonafication
|
133
152
|
|
@@ -151,6 +170,7 @@ use cases, except you use the `email` parameter rather than `user_identifier` or
|
|
151
170
|
| User Presence | `user_presence` | N | Should the user be required to demonstrate presence (e.g. via Biometric) when accepting this Trusonafication? Defaults to `true`. |
|
152
171
|
| Prompt | `prompt` | N | Should the user be prompted to Accept or Reject this Trusonafication? Defaults to `true`. |
|
153
172
|
| Expiration | `expires_at` | N | The ISO-8601 UTC timestamp of the Trusonafication's expiration. Defaults to 90 seconds from creation. |
|
173
|
+
| Custom Fields | `custom_fields` | N | Arbitrary key-value data fields made available to the Trusonafication. Amount of data in the hash is limited to 1MB |
|
154
174
|
|
155
175
|
[^1]: You must provide at least one field that would allow Trusona to determine which user to authenticate. The identifier fields are `device_identifier`, `user_identifier`, and `trucode_id`.
|
156
176
|
|
data/certs/trusona.pem
CHANGED
@@ -1,26 +1,34 @@
|
|
1
1
|
-----BEGIN CERTIFICATE-----
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
2
|
+
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
|
33
|
+
eNCk84I=
|
26
34
|
-----END CERTIFICATE-----
|
@@ -11,7 +11,7 @@ module Trusona
|
|
11
11
|
attr_accessor :device_identifier, :user_identifier, :trucode_id,
|
12
12
|
:resource, :action, :level, :id, :email,
|
13
13
|
:accepted_level, :trusona_id, :expires_at,
|
14
|
-
:user_presence, :prompt
|
14
|
+
:user_presence, :prompt, :custom_fields
|
15
15
|
|
16
16
|
# rubocop:disable Metrics/AbcSize
|
17
17
|
# rubocop:disable Metrics/MethodLength
|
@@ -31,6 +31,7 @@ module Trusona
|
|
31
31
|
self.trusona_id = @params[:trusona_id]
|
32
32
|
self.prompt = defaulting_to(true, @params[:prompt])
|
33
33
|
self.user_presence = defaulting_to(true, @params[:user_presence])
|
34
|
+
self.custom_fields = @params[:custom_fields]
|
34
35
|
|
35
36
|
@status = @params[:status]
|
36
37
|
end
|
@@ -55,6 +56,7 @@ module Trusona
|
|
55
56
|
status: @status,
|
56
57
|
prompt: prompt,
|
57
58
|
user_presence: user_presence,
|
59
|
+
custom_fields: custom_fields,
|
58
60
|
expires_at: expires_at&.iso8601)
|
59
61
|
end
|
60
62
|
# rubocop:enable Metrics/MethodLength
|
@@ -58,6 +58,9 @@ module Trusona
|
|
58
58
|
# @param timeout [Int] (30) The max amount of time, in seconds, to wait
|
59
59
|
# for a response from the Trusona API when polling for a Trusonafication
|
60
60
|
# result
|
61
|
+
# @option params [Hash] :custom_fields Optional data to be associated with
|
62
|
+
# this Trusonafication and can be used to constomize any UX elements. Total
|
63
|
+
# size of data is limited to 1MB.
|
61
64
|
# @yield [Trusona::Resources::Trusonafication] Yields the completed
|
62
65
|
# Trusonafication to the block
|
63
66
|
# @raise [Trusona::InvalidResourceError] if the resource is not +valid?+
|
data/lib/trusona/version.rb
CHANGED
data/trusona.key.pem.enc
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: trusona
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Trusona
|
@@ -10,32 +10,40 @@ bindir: exe
|
|
10
10
|
cert_chain:
|
11
11
|
- |
|
12
12
|
-----BEGIN CERTIFICATE-----
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
13
|
+
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
|
44
|
+
eNCk84I=
|
37
45
|
-----END CERTIFICATE-----
|
38
|
-
date: 2019-
|
46
|
+
date: 2019-07-16 00:00:00.000000000 Z
|
39
47
|
dependencies:
|
40
48
|
- !ruby/object:Gem::Dependency
|
41
49
|
name: httparty
|
metadata.gz.sig
CHANGED
Binary file
|