Hej, do tej pory parsowałem sobie signed_request z FB i wszystko działało, po aktualizacji systemy(mac os) z 10.8.2 na 10.8.3 nagle coś posypało. a nic w kodzie nie zmieniałem.
Metoda do parsowania
[code=ruby] def parse_signed_request
signed_request = Facebook::SignedRequest.new( params[:signed_request], secret: SECRET )
#session['signed_request'] = signed_request.data
if !session['user_id']
session['user_id'] = signed_request.data[:user_id]
if signed_request.data[:user_id]
session['user_id_app'] = User.where("uid = '"+signed_request.data[:user_id]+"'")[0].id if User.where(:uid => signed_request.data[:user_id]).count > 0
end
end
if !session['oauth_token']
session['oauth_token'] = signed_request.data[:oauth_token]
end
if !session['page_id']
session['page_id'] = signed_request.data[:page][:id]
session['page_id_app'] =Fanpage.find_by_uid(signed_request.data[:page][:id]).id
end
if signed_request.data[:app_data]
@split = signed_request.data[:app_data].split('_')
session['app_data'] = signed_request.data[:app_data]
if @split[0].to_s != 'ranking'
redirect_to vcard_path :card_id => signed_request.data[:app_data]
else
redirect_to vranking_path :card_id => signed_request.data[:app_data]
end
end
end[/code]
W innym kontrolerze daję
before_filter :parse_signed_request
W logach mam :
[code]Started POST “/app” for 89.79.218.16 at 2013-03-20 11:44:35 +0100
Processing by AppController#index as HTML
Parameters: {“signed_request”=>“TnT9-cNnXCRoT-DwIjHgvnB4YW_Jfiw5MIwelwDI_jM.eyJhbGdvcml0aG0iOiJITUFDLVNIQTI1NiIsImlzc3VlZF9hdCI6MTM2Mzc3NjI3NCwicGFnZSI6eyJpZCI6IjQxNTQ4OTg4MTg0NzE3MiIsImxpa2VkIjpmYWxzZSwiYWRtaW4iOnRydWV9LCJ1c2VyIjp7ImNvdW50cnkiOiJwbCIsImxvY2FsZSI6ImVuX1VTIiwiYWdlIjp7Im1pbiI6MjF9fX0”}
WARNING: Can’t verify CSRF token authenticity
Redirected to https://89.79.218.16:3000/app/list
Completed 302 Found in 2ms (ActiveRecord: 0.3ms)
Started GET “/app/list” for 89.79.218.16 at 2013-03-20 11:44:35 +0100
…[/code]
w /app jest ok parsuje itp zapisuje do sesji itp. Ale po przekierowania gubi wszystko…
Na dodatek takie coś doszło WARNING: Can’t verify CSRF token authenticity
Ta sama aplikacja ma logowanie przez FB dla Adminów. Jak się zaloguję tam a potem wrócę tutaj się logować to działa. (tam nie parsuje tego signed_request)
Wie może ktoś o co chodzi.