standard_id 0.17.0 → 0.17.1
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:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 50cac29c9420971a28c8c4b401349cc0563270a16d519c0abd9052da600c685a
|
|
4
|
+
data.tar.gz: b47c1a99cc5d7d335f9dee1c53d4831cbcc70b3d933bb6130e600797eb4998df
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 04e2bf5d6503e312fecdedfdee8f5eb7b1dd5c438c25f351ab222160249bb4de40d3b7348bffc4431d71047e05cb918ea399e67060ad66d946d17dc66d038ce8
|
|
7
|
+
data.tar.gz: 6f38767fc4bd02d3595cf243bf1d326881cf17baea355577416158bf43418a6423f7d3a14c9c2fa721b38c9f1ff4fa75658cd5b0b2f26e48d6fb970cc041c3cb
|
|
@@ -5,6 +5,12 @@ module StandardId
|
|
|
5
5
|
subscribe_to StandardId::Events::PASSWORDLESS_CODE_GENERATED
|
|
6
6
|
|
|
7
7
|
def call(event)
|
|
8
|
+
# Per-call manual-delivery request takes precedence over the global
|
|
9
|
+
# delivery config. Honors Otp.issue(delivery: :manual) callers who
|
|
10
|
+
# deliver the code themselves (custom widget flows, step-up
|
|
11
|
+
# challenges, etc.) and would otherwise receive a duplicate email
|
|
12
|
+
# from this subscriber when c.passwordless.delivery == :built_in.
|
|
13
|
+
return if event[:skip_sender]
|
|
8
14
|
return unless built_in_delivery?
|
|
9
15
|
return unless event[:channel] == "email"
|
|
10
16
|
|
|
@@ -30,7 +30,12 @@ module StandardId
|
|
|
30
30
|
expires_in: expires_in,
|
|
31
31
|
metadata: metadata
|
|
32
32
|
)
|
|
33
|
-
|
|
33
|
+
# skip_sender is forwarded into the event payload so subscribers that
|
|
34
|
+
# deliver on PASSWORDLESS_CODE_GENERATED (e.g. PasswordlessDeliverySubscriber)
|
|
35
|
+
# can honor a per-call manual-delivery request — not just the legacy
|
|
36
|
+
# sender_callback. Without this, Otp.issue(delivery: :manual) silently
|
|
37
|
+
# double-delivers when c.passwordless.delivery == :built_in.
|
|
38
|
+
emit_code_generated(challenge, username, skip_sender: skip_sender)
|
|
34
39
|
sender_callback&.call(username, challenge.code) unless skip_sender
|
|
35
40
|
emit_code_sent(username) unless skip_sender
|
|
36
41
|
challenge
|
|
@@ -158,14 +163,15 @@ module StandardId
|
|
|
158
163
|
)
|
|
159
164
|
end
|
|
160
165
|
|
|
161
|
-
def emit_code_generated(challenge, username)
|
|
166
|
+
def emit_code_generated(challenge, username, skip_sender: false)
|
|
162
167
|
StandardId::Events.publish(
|
|
163
168
|
StandardId::Events::PASSWORDLESS_CODE_GENERATED,
|
|
164
169
|
code_challenge: challenge,
|
|
165
170
|
identifier: username,
|
|
166
171
|
channel: connection_type,
|
|
167
172
|
realm: @realm,
|
|
168
|
-
expires_at: challenge.expires_at
|
|
173
|
+
expires_at: challenge.expires_at,
|
|
174
|
+
skip_sender: skip_sender
|
|
169
175
|
)
|
|
170
176
|
end
|
|
171
177
|
|
data/lib/standard_id/version.rb
CHANGED