mmangino-facebooker 1.0.7 → 1.0.8
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/facebooker/models/user.rb +3 -1
- data/lib/facebooker/rails/controller.rb +18 -8
- metadata +1 -1
@@ -86,7 +86,9 @@ module Facebooker
|
|
86
86
|
|
87
87
|
#use __blank instead of nil so that this is cached
|
88
88
|
cache_key = flid||"__blank"
|
89
|
-
|
89
|
+
options = {:uid=>@id}
|
90
|
+
options[:flid] = flid unless flid.nil?
|
91
|
+
@friends_hash[cache_key] ||= @session.post('facebook.friends.get', options,false).map do |uid|
|
90
92
|
User.new(uid, @session)
|
91
93
|
end
|
92
94
|
@friends_hash[cache_key]
|
@@ -71,23 +71,33 @@ module Facebooker
|
|
71
71
|
!session[:facebook_session].blank? && (params[:fb_sig_session_key].blank? || session[:facebook_session].session_key == facebook_params[:session_key])
|
72
72
|
end
|
73
73
|
end
|
74
|
+
|
75
|
+
def clear_fb_cookies!
|
76
|
+
domain_cookie_tag = "base_domain_#{Facebooker.api_key}"
|
77
|
+
cookie_domain = ".#{cookies[domain_cookie_tag]}" if cookies[domain_cookie_tag]
|
78
|
+
fb_cookie_names.each {|name| cookies.delete(name, :domain=>cookie_domain)}
|
79
|
+
cookies.delete Facebooker.api_key
|
80
|
+
end
|
81
|
+
|
82
|
+
def fb_cookie_prefix
|
83
|
+
Facebooker.api_key+"_"
|
84
|
+
end
|
85
|
+
|
86
|
+
def fb_cookie_names
|
87
|
+
fb_cookie_names = cookies.keys.select{|k| k.starts_with?(fb_cookie_prefix)}
|
88
|
+
end
|
74
89
|
|
75
90
|
def secure_with_cookies!
|
76
|
-
api_key = ENV['FACEBOOK_API_KEY']
|
77
|
-
prefix = api_key+"_"
|
78
91
|
parsed = {}
|
79
|
-
|
80
|
-
|
81
|
-
cookies.keys.select{|k| k[0, prefix.size] == prefix}.each{ |k|
|
82
|
-
parsed[k[prefix.size,k.size]] = cookies[k]
|
83
|
-
}
|
92
|
+
|
93
|
+
fb_cookie_names.each { |key| parsed[key[fb_cookie_prefix.size,key.size]] = cookies[key] }
|
84
94
|
|
85
95
|
#returning gracefully if the cookies aren't set or have expired
|
86
96
|
return unless parsed['session_key'] && parsed['user'] && parsed['expires'] && parsed['ss']
|
87
97
|
return unless Time.at(parsed['expires'].to_f) > Time.now
|
88
98
|
|
89
99
|
#if we have the unexpired cookies, we'll throw an exception if the sig doesn't verify
|
90
|
-
verify_signature(parsed,cookies[api_key])
|
100
|
+
verify_signature(parsed,cookies[Facebooker.api_key])
|
91
101
|
|
92
102
|
@facebook_session = new_facebook_session
|
93
103
|
@facebook_session.secure_with!(parsed['session_key'],parsed['user'],parsed['expires'],parsed['ss'])
|