Class: FacebookClient::IframeSession
- Inherits:
-
Object
- Object
- FacebookClient::IframeSession
- Defined in:
- lib/iframe_session.rb
Class Method Summary collapse
Instance Method Summary collapse
- #calculate_sig(params) ⇒ Object
-
#check_sig_and_return_data(params) ⇒ Object
private.
-
#initialize(fb, params) ⇒ IframeSession
constructor
A new instance of IframeSession.
- #parse_fbs!(fbs) ⇒ Object
- #secure? ⇒ Boolean
- #uid ⇒ Object
Constructor Details
#initialize(fb, params) ⇒ IframeSession
Returns a new instance of IframeSession.
14 15 16 17 |
# File 'lib/iframe_session.rb', line 14 def initialize(fb, params) @fb=fb @data=parse_fbs!(params["session"]) end |
Class Method Details
.create_and_secure(fb, params) ⇒ Object
8 9 10 11 12 |
# File 'lib/iframe_session.rb', line 8 def self.create_and_secure(fb, params) iframe_session = new(fb, params) iframe_session.secure? ? iframe_session : nil end |
Instance Method Details
#calculate_sig(params) ⇒ Object
38 39 40 41 42 43 |
# File 'lib/iframe_session.rb', line 38 def calculate_sig(params) args = params.reject{ |(k, v)| k == 'sig' }.sort. map{ |a| a.join('=') }.join Digest::MD5.hexdigest(args + @fb.secret) end |
#check_sig_and_return_data(params) ⇒ Object
private
34 35 36 |
# File 'lib/iframe_session.rb', line 34 def check_sig_and_return_data(params) params if calculate_sig(params) == params['sig'] end |
#parse_fbs!(fbs) ⇒ Object
19 20 21 22 |
# File 'lib/iframe_session.rb', line 19 def parse_fbs!(fbs) @data = fbs && check_sig_and_return_data(Yajl::Parser.parse(fbs)) end |
#secure? ⇒ Boolean
24 25 26 |
# File 'lib/iframe_session.rb', line 24 def secure? @data.is_a?(Hash) and @data.has_key?('uid') end |
#uid ⇒ Object
28 29 30 |
# File 'lib/iframe_session.rb', line 28 def uid @data['uid'] end |