class ActiveSupport::MessageVerifier

def verified(message, **options)


verifier.verified(message, purpose: "greeting") # => nil
verifier.verified(message) # => "bye"
message = verifier.generate("bye")

verifier.verified(message) # => nil
verifier.verified(message, purpose: "chatting") # => nil
verifier.verified(message, purpose: "greeting") # => "hello"
message = verifier.generate("hello", purpose: "greeting")

match, +verified+ will return +nil+.
The purpose that the message was generated with. If the purpose does not
[+:purpose+]

==== Options

verifier.verified(incompatible_message) # => TypeError: incompatible marshal file format
incompatible_message = "test--dad7b06c94abba8d46a15fafaef56c327665d5ff"

Raises any error raised while decoding the signed message.

verifier.verified(invalid_message) # => nil
invalid_message = "f--46a0120593880c733a53b6dad75b42ddc1c8996d"

Returns +nil+ if the message is not Base64-encoded.

other_verifier.verified(signed_message) # => nil
other_verifier = ActiveSupport::MessageVerifier.new("different_secret")

Returns +nil+ if the message was not signed with the same secret.

verifier.verified(signed_message) # => "signed message"
signed_message = verifier.generate("signed message")

verifier = ActiveSupport::MessageVerifier.new("secret")

Decodes the signed message using the +MessageVerifier+'s secret.
def verified(message, **options)
  catch_and_ignore :invalid_message_format do
    catch_and_raise :invalid_message_serialization do
      catch_and_ignore :invalid_message_content do
        read_message(message, **options)
      end
    end
  end
end