8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# File 'lib/rails/signed_request.rb', line 8
def self.parse(params, secret_key=nil)
if params.is_a?(Hash)
signed_request = (params.delete('signed_request') || params.delete(:signed_request))
else
signed_request = params
end
unless signed_request
raise "Missing signed_request param"
end
unless secret_key
raise "Missing Facebook secret key"
end
signature, signed_params = signed_request.split('.')
unless signed_request_is_valid?(secret_key, signature, signed_params)
raise "Invalid signature"
end
signed_params = Yajl::Parser.new.parse(base64_url_decode(signed_params))
return signed_params
end
|