class MessageVerifier::Verifier
- MessageVerifier::Verifier
- Reference
- Object
Defined in:
message_verifier/verifier.crConstructors
Instance Method Summary
-
#generate(message : String, expires_at : Time | Nil = nil, expires_in : Int64 | Nil = nil, purpose : String | Symbol | Nil = nil)
Generates a signed message for the provided value.
-
#valid_message?(signed_message : String)
Checks if a signed message could have been generated by signing an object with the +MessageVerifier+'s secret.
-
#verified(signed_message, purpose : String | Symbol | Nil = nil, parser : Nil | Symbol = :JSON)
Decodes the signed message using the +MessageVerifier+'s secret.
-
#verified!(signed_message, purpose : String | Symbol | Nil = nil, parser : Nil | Symbol = :JSON)
Same as #verify, however it raises an exception instead of returning nil
-
#verify(signed_message : String, purpose : String | Symbol | Nil = nil, parser : Nil | Symbol = :JSON)
Decodes the signed message using the +MessageVerifier+'s secret.
Constructor Detail
Instance Method Detail
Generates a signed message for the provided value.
The message is signed with the +MessageVerifier+'s secret. Without knowing the secret, the original value cannot be extracted from the message.
verifier = MessageVerifier::Verifier.new 's3Krit' verifier.generate 'a private message' # => "BAhJIhRwcml2YXRlLW1lc3NhZ2UGOgZFVA==--e2d724331ebdee96a10fb99b089508d1c72bd772"
Checks if a signed message could have been generated by signing an object with the +MessageVerifier+'s secret.
verifier = MessageVerifier::Verifier.new 's3Krit' signed_message = verifier.generate 'a private message' verifier.valid_message?(signed_message) # => true
tampered_message = signed_message.chop # editing the message invalidates the signature verifier.valid_message?(tampered_message) # => false
Decodes the signed message using the +MessageVerifier+'s secret.
verifier = MessageVerifier::Verifier.new 's3Krit'
signed_message = verifier.generate 'a private message' verifier.verified(signed_message) # => 'a private message'
Returns +nil+ if the message was not signed with the same secret.
other_verifier = MessageVerifier::Verifier.new 'd1ff3r3nt-s3Krit' other_verifier.verified(signed_message) # => nil
Returns +nil+ if the message is not Base64-encoded.
invalid_message = "f--46a0120593880c733a53b6dad75b42ddc1c8996d" verifier.verified(invalid_message) # => nil
Same as #verify, however it raises an exception instead of returning nil
Decodes the signed message using the +MessageVerifier+'s secret.
verifier = MessageVerifier::Verifier.new 's3Krit' signed_message = verifier.generate 'a private message'
verifier.verify(signed_message) # => 'a private message'
Raises +InvalidSignature+ if the message was not signed with the same secret or has expired
other_verifier = MessageVerifier::Verifier.new 'd1ff3r3nt-s3Krit' other_verifier.verify(signed_message) # => ActiveSupport::MessageVerifier::InvalidSignature