Ruby on rails 如何在Rails中执行Facebook身份验证?

Ruby on rails 如何在Rails中执行Facebook身份验证?,ruby-on-rails,ruby-on-rails-3,facebook,authentication,koala,Ruby On Rails,Ruby On Rails 3,Facebook,Authentication,Koala,一段时间以来,我一直在努力通过Facebook验证canvas应用程序。我的做法如下: 检查用户会话中的访问令牌 检查用户的Facebook Cookie以获取访问令牌 检查签名请求的参数 如果在这3个步骤中的任何一个步骤中找到访问令牌: 我调用graph API,请求/me资源。 如果呼叫成功,则用户已登录 如果调用失败(导致出现OAuthException),我会将用户重定向到Facebook OAuth端点以获取代码,然后通过交换该代码获取新的访问令牌,从而请求新的访问令牌 如果在

一段时间以来,我一直在努力通过Facebook验证canvas应用程序。我的做法如下:

  • 检查用户会话中的访问令牌
  • 检查用户的Facebook Cookie以获取访问令牌
  • 检查签名请求的参数
  • 如果在这3个步骤中的任何一个步骤中找到访问令牌:

    • 我调用graph API,请求
      /me
      资源。
      • 如果呼叫成功,则用户已登录
      • 如果调用失败(导致出现
        OAuthException
        ),我会将用户重定向到Facebook OAuth端点以获取代码,然后通过交换该代码获取新的访问令牌,从而请求新的访问令牌
    如果在会话、cookies或签名请求中未找到访问令牌,我将显示登录页

    这是正确的过程吗?我注意到,如果用户的访问令牌已过期,参数中通常不存在
    签名请求。Facebook支持的请求新访问令牌的方法会导致2个面向用户的重定向以及API交换,这似乎有点沉重

    我正在使用的设置是:

    • Rails v3.0.8
    • 考拉宝石v1.2.1
    我遵循了以下指南:


    您考虑过使用Omniauth吗?(https://github.com/intridea/omniauth)它包罗了所有这些内容,并允许您轻松地扩展到其他站点。

    您考虑过使用Omniauth吗?(https://github.com/intridea/omniauth)它包罗了所有这些内容,并允许您轻松地扩展到其他网站。

    +1。使用“omniauth”和“omniauth facebook”gems,配置应用程序凭据,就完成了。不,真的,你完成了。我将尝试使用Omniauth进行身份验证,看看是否可以让它正常工作。+1用于此。使用“omniauth”和“omniauth facebook”gems,配置应用程序凭据,就完成了。不,真的,你完成了。我将尝试使用Omniauth进行身份验证,看看是否可以让它工作。