class Restforce::SignedRequest
def self.decode(signed_request, client_secret)
client_secret - The oauth client secret used to encrypt the signed request.
signed_request - The POST message containing the signed request from Salesforce.
Public: Initializes and decodes the signed request
def self.decode(signed_request, client_secret) new(signed_request, client_secret).decode end
def decode
Returns the parsed JSON context.
Public: Decode the signed request.
def decode return nil if signature != hmac JSON.parse(Base64.decode64(payload)) end
def digest
def digest digest_class.new('sha256') end
def digest_class
def digest_class if RUBY_VERSION < '2.1' OpenSSL::Digest::Digest else OpenSSL::Digest end end
def hmac
def hmac OpenSSL::HMAC.digest(digest, client_secret, payload) end
def initialize(signed_request, client_secret)
def initialize(signed_request, client_secret) @client_secret = client_secret split_components(signed_request) end
def split_components(signed_request)
def split_components(signed_request) @signature, @payload = signed_request.split('.') @signature = Base64.decode64(@signature) end