class Restforce::Client

def decode_signed_request(message)

Returns the Hash context if the message is valid.

message - The POST message containing the signed request from Salesforce.

Public: Decodes a signed request received from Force.com Canvas.
def decode_signed_request(message)
  raise 'client_secret not set' unless @options[:client_secret]
  encryped_secret, payload = message.split('.')
  digest = OpenSSL::Digest::Digest.new('sha256')
  signature = Base64.encode64(OpenSSL::HMAC.hexdigest(digest, @options[:client_secret], payload))
  JSON.parse(Base64.decode64(payload)) if encryped_secret == signature
end