- #
- C
- I
- O
- R
屬性
[RW] | transitional | 如果為 true,在建立訊息驗證器時,會交換前兩個輪替選項組。例如,使用下列設定,訊息驗證器將使用
這在執行應用程式的滾動式部署時很有用,其中尚未更新的伺服器仍然必須能夠驗證已更新伺服器的訊息。在這種情況下,首先執行滾動式部署,將新的輪替 (例如 |
執行個體公開方法
[](salt) 連結
傳回一個 MessageVerifier
,其設定為使用從給定的 salt
衍生的機密,以及 rotate
中的選項。 MessageVerifier
執行個體將會記住,因此相同的 salt
將會傳回相同的執行個體。
來源: 在 GitHub 上
# File activesupport/lib/active_support/message_verifiers.rb, line 47
[]=(salt, verifier) 連結
覆寫與給定 salt
關聯的 MessageVerifier
執行個體。
來源:GitHub
# File activesupport/lib/active_support/message_verifiers.rb, line 55
clear_rotations 連結
清除選項集清單。
來源:GitHub
# File activesupport/lib/active_support/message_verifiers.rb, line 113
initialize(&secret_generator) 連結
初始化新執行個體。secret_generator
必須接受鹽,並傳回適當的機密 (字串)。secret_generator
也可能接受任意關鍵字參數。如果 rotate
呼叫任何與這些關鍵字參數相符的選項,這些選項將傳遞給 secret_generator
,而非訊息驗證器。
verifiers = ActiveSupport::MessageVerifiers.new do |salt, base:|
MySecretGenerator.new(base).generate(salt)
end
verifiers.rotate(base: "...")
來源:GitHub
# File activesupport/lib/active_support/message_verifiers.rb, line 31
on_rotation(&callback) 連結
設定一個在使用非第一個選項集驗證訊息時呼叫的回呼。
例如,這個回呼可以在每次呼叫時記錄,並因此指出舊選項集是否仍在使用中,或是否可以從輪替中移除。
來源:GitHub
# File activesupport/lib/active_support/message_verifiers.rb, line 119
rotate(**options) 連結
將 options
加入選項集清單。訊息
將使用清單中的第一個集合簽署。然而,在驗證時,將依序嘗試每個集合,直到其中一個成功為止。
值得注意的是,:secret_generator
選項可以指定與最初指定的不同的機密產生器。機密產生器必須回應 call
,接受鹽,並傳回適當的機密 (字串)。機密產生器也可能接受任意關鍵字參數。
如果任何選項與運作中的機密產生器的關鍵字參數相符,這些選項將傳遞給機密產生器,而非訊息驗證器。
對於精細的每鹽輪替,支援區塊形式。區塊會收到鹽,並應傳回適當的選項 Hash
。區塊也可以傳回 nil
來表示輪替不適用於給定的鹽。例如
verifiers = ActiveSupport::MessageVerifiers.new { ... }
verifiers.rotate do |salt|
case salt
when :foo
{ serializer: JSON, url_safe: true }
when :bar
{ serializer: Marshal, url_safe: true }
end
end
verifiers.rotate(serializer: Marshal, url_safe: false)
# Uses `serializer: JSON, url_safe: true`.
# Falls back to `serializer: Marshal, url_safe: false`.
verifiers[:foo]
# Uses `serializer: Marshal, url_safe: true`.
# Falls back to `serializer: Marshal, url_safe: false`.
verifiers[:bar]
# Uses `serializer: Marshal, url_safe: false`.
verifiers[:baz]
來源: 在 GitHub 上
# File activesupport/lib/active_support/message_verifiers.rb, line 61
rotate_defaults 連結
使用預設選項呼叫 rotate
。
來源: 在 GitHub 上
# File activesupport/lib/active_support/message_verifiers.rb, line 107