在我的应用程序中重定向后,我遇到了会话丢失的问题 . 我们正在使用宝石“考拉”与Facebook整合 . 这个宝石在Rails 3.0上工作得很好,但是我们没有升级到Rails 3.2.12并且它失败了,因为会话在重定向到Facebook之后消失了 .
我一直在调查和阅读很多类似的问题,但还没有得到任何解决方案 . 这里的关键是2个动作:
1)Publish_event动作,我们设置Koala对象并与Facebook连接:
def publish_event
...
...
callback = url_for(......................)
@oauth = Koala::Facebook::OAuth.new(Facebook::APP_ID, Facebook::SECRET, callback)
session[:oauth] = @oauth
redirect_to @oauth.url_for_oauth_code(:permissions => ["offline_access", "publish_stream", "manage_pages"])
end
这部分工作正常,并成功连接到Facebook . Facebook重定向回我们的应用程序,第二个动作称为:
2)Facebook回调操作,我们发布我们想要的消息:
def facebook_callback
token = session[:oauth].get_access_token(params[:code])
@graph = Koala::Facebook::API.new(token)
.....
end
这里的问题是,在重定向到Facebook后,会话未加载(Rack :: Session :: Abstract :: SessionHash:0x30027e4尚未加载),因此我们无法继续,因为我们需要创建的原始oauth Koala对象与Facebook的连接,应该在会话中 .
我将会话配置为active_record_store,并且它在应用程序的其余部分中运行良好,所以我在这里很困惑 .
有人遇到过类似的东西吗?或者你有什么建议如何以不同的方式做到这一点?
谢谢 !