From a8ed135d07fbd5f2ce009d37a96a00c52e351830 Mon Sep 17 00:00:00 2001 From: Jack Cuneo <46851876+jackcuneo@users.noreply.github.com> Date: Wed, 10 Aug 2022 08:41:48 -0600 Subject: [PATCH] Handle null values in payload Original code throws NameError if payload contains nulls. This version sets payload variable as a string, and produces compact JSON by parsing the string to a hash, then the hash to JSON. --- verify_signature.rb | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/verify_signature.rb b/verify_signature.rb index 8fdc567..f27aa3c 100644 --- a/verify_signature.rb +++ b/verify_signature.rb @@ -7,14 +7,14 @@ def verify_signature(secret, compact_json_payload, signature) OpenSSL.secure_compare(signature, computed_hash) end -payload = { - monday: '75F', - tuesday: '80F' -} +payload = '{ + "key1": "value1", + "key2": null +}' # Warning! JSON must be compact. Pretty JSON with spaces will not work. -compact_json_payload = payload.to_json +compact_json_payload = JSON.parse(payload).to_json -payload_signature = 'b7412f05e981a473b5ecbdb5393afaea02a679db6d7c8e56803512ec4ba98151' +payload_signature = 'x-checkr-signature value' -secret = 'test-secret' -puts verify_signature(secret, compact_json_payload, payload_signature) # should print true \ No newline at end of file +secret = 'secret key' +puts verify_signature(secret, compact_json_payload, payload_signature) # should print true