Class: FacebookClient::Session::SessionParam
- Defined in:
- lib/session/session_param.rb
Instance Attribute Summary
Attributes inherited from Base
Class Method Summary collapse
Instance Method Summary collapse
- #access_token ⇒ Object
- #calculate_sig(params) ⇒ Object
-
#check_sig_and_return_data(params) ⇒ Object
private.
-
#initialize(fb, params) ⇒ SessionParam
constructor
A new instance of SessionParam.
- #parse_fbs!(fbs) ⇒ Object
- #secure? ⇒ Boolean
- #uid ⇒ Object
Methods inherited from Base
Constructor Details
#initialize(fb, params) ⇒ SessionParam
Returns a new instance of SessionParam.
16 17 18 19 |
# File 'lib/session/session_param.rb', line 16 def initialize(fb, params) @fb=fb @data=parse_fbs!(params["session"]) end |
Class Method Details
.create_and_secure(fb, params) ⇒ Object
10 11 12 13 14 |
# File 'lib/session/session_param.rb', line 10 def self.create_and_secure(fb, params) iframe_session = new(fb, params) iframe_session.secure? ? iframe_session : nil end |
Instance Method Details
#access_token ⇒ Object
34 35 36 |
# File 'lib/session/session_param.rb', line 34 def access_token @data["access_token"] end |
#calculate_sig(params) ⇒ Object
44 45 46 47 48 49 |
# File 'lib/session/session_param.rb', line 44 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
40 41 42 |
# File 'lib/session/session_param.rb', line 40 def check_sig_and_return_data(params) params if calculate_sig(params) == params['sig'] end |
#parse_fbs!(fbs) ⇒ Object
21 22 23 24 |
# File 'lib/session/session_param.rb', line 21 def parse_fbs!(fbs) @data = fbs && check_sig_and_return_data(Yajl::Parser.parse(fbs)) end |
#secure? ⇒ Boolean
26 27 28 |
# File 'lib/session/session_param.rb', line 26 def secure? @data.is_a?(Hash) and @data.has_key?('uid') end |
#uid ⇒ Object
30 31 32 |
# File 'lib/session/session_param.rb', line 30 def uid @data['uid'] end |