在不使用cookie的情况下创建会话

时间:2014-07-07 08:18:55

标签: javascript ruby-on-rails session java-ee cookies

我想创建类似于faebook"类似"的应用程序。在Facebook上,一旦你登录Facebook,所有的网站都有"喜欢"插件可以访问Facebook登录并获取必要的数据(例如,您喜欢或不喜欢或有多少朋友/人喜欢该页面或其他什么)。但是,为了维护会话,facebook使用cookie在浏览器上存储会话。 如果您关闭/删除cookie,它将无法正常工作。

是否有任何技术或方法可以在服务器上维护会话或不依赖于cookie?

感谢。

1 个答案:

答案 0 :(得分:0)

我认为你的意思是Facebook"喜欢"第三方网站上的按钮?

这将使用他们的API直接调用Facebook服务,并加载"实例" iframe中的FB接口。

-

<强> CORS

您正在关注的主要问题是如何管理服务的CORS元素

CORS(跨域资源共享)允许外部服务器通过Ajax访问服务器上的资源。这可能是该过程中最重要的元素,因为它允许FB / Twitter之类的人加载数字&#34; general&#34;按钮的数据。

这部分是您实现功能的地方,也是他在推荐*时提到的原始答案

Rails gem called RACK-CORS处理Rails / Rack应用程序的CORS策略:

  #config/application.rb
  use Rack::Cors do
    allow do
      origins '*'
      resource '/buttons/*', :headers => :any, :methods => :get
    end
  end

当您使用下面的JS时,您基本上能够向domain.com/buttons/:button_id发送Ajax请求以获取数据的pingback(喜欢的数量等)

-

<强> JS

按钮本身将填充JS,并可能调用JSON或普通HTTP来获取所需的通用数据

它将检索&#34;喜欢&#34;来自Facebook服务。这将使用JS完成,并将需要如上所述的CORS设置,因为它将使用XHR来检索所需的数据。

这就是为什么您需要至少拥有一个页面ID,有时需要某种更深层次的身份验证(应用程序ID,小部件ID,oAuth)来获取您网站上的其中一个小部件。原因是,为了使按钮检索所需数据,服务器将需要知道数据的用途

你可以这样做:

#javascript xhr
(function($){
   //call Ajax to get numeric data for button
});

-

<强>验证

如果你想知道用户是否喜欢&#34;一个页面,你最好使用FB&amp; amp;的方法。 Twitter(我认为)并使用iframe加载按钮

这可能听起来很糟糕,但事实是,在FB服务上托管的iframe将使您能够对服务本身的会话进行身份验证,从而能够知道是否按钮已被激活&#34;或不。

要直接回答您的问题,该按钮将无法维持会话;它将在按钮调用方式的范围内(是否在服务器上?)