【问题标题】:Rails: Facebook Connect: Client Side/Server Side or Both? [closed]Rails:Facebook Connect:客户端/服务器端还是两者兼而有之? [关闭]
【发布时间】:2013-09-16 11:40:51
【问题描述】:

我正在使用我的 Ruby on Rails 应用程序进行 Facebook 集成以验证用户身份。我一直在浏览在线教程和一些 SO 帖子。

我遇到了一些方法来做到这一点,其中大多数都在谈论去年这篇文章中解释的内容。 http://railscasts.com/episodes/360-facebook-authentication?view=asciicast

我的问题是:

  1. 我可以只使用客户端集成吗?

  2. 为什么需要服务器端集成?

  3. 选择一种的优缺点是什么?

  4. 两者都有什么好处?

  5. 进行服务器端集成(哪个 gem/gems)的最佳方法是什么?

【问题讨论】:

  • My questions are: :O
  • derekyau 理解并完美地回答了这个问题。他的回答可能对其他人有益。你能把反对票去掉吗?
  • 我没有给任何 -ve 投票!
  • 很高兴您从答案中获得了价值 :),您可以将其标记为“已接受”吗?
  • @Shadowfax 似乎这个问题“搁置”太宽泛了,我认为 Karan 已经从中获得了足够的价值,我们可以重新打开这个问题吗?

标签: ruby-on-rails facebook oauth facebook-javascript-sdk


【解决方案1】:

这个问题有点模糊。如果您所说的集成是身份验证,那么答案是唯一的区别是客户端版本需要 javascript 才能工作,而服务器端版本不需要(并且实现略有不同)。

在我看来,在 Rails 中进行任何类型的 Facebook 工作的最佳方式是the Koala gem(使用 Omniauth)。它有很好的文档记录,它使浏览糟糕的 FB API 几乎可以忍受。

同样,如果您询问的是身份验证,那么没有区别。使用 Koala/Omniauth,您可以从 JS SDK 生成的 cookie 中提取用户信息,就像使用基于服务器端重定向的登录一样。

【讨论】:

    【解决方案2】:

    我可以只使用客户端集成吗?

    • 通过客户端集成,我假设您只是使用 FB javascript 小部件(如 facebook like 按钮 (https://developers.facebook.com/docs/reference/plugins/like/))来引用。您绝对可以这样做,并且它根本不需要您的用户对您的应用程序进行“身份验证”(即通过 oAuth 过程来授予您的应用程序权限等)。相反,它只会将它们弹出到 facebook 登录页面并直接张贴在他们的墙上/喜欢等。

    为什么需要服务器端集成?

    • 作为对第一个问题的回答的延续,有时您可能实际上希望用户通过 oAuth 流程,以便您可以在服务器端执行其他操作。这可能包括(取决于您要求的权限)获取电子邮件/图片、国家/地区等信息。您的用户。或者它可能与实现特定功能有关,例如拉朋友的朋友并查看当前谁在使用您的应用。

    选择一个的优缺点是什么?

    • 两者都是可接受的与 FB 集成的方式,但使用 JS 小部件并不是真正的登录集成,它只是重定向到 FB 以执行某些操作。如果您真的想让某人在您的网站上“使用 facebook 登录”,则必须使用服务器端集成(即 oAuth)
    • 这反过来意味着,在 oAuth 过程之后,您将拥有一个“身份验证”(即令牌),代表来自 FB 的用户与服务器端数据库中的实际“用户”对象相关联。
    • 出于多种原因,这很有用,如上所述。如果您不需要做复杂的事情,而只是希望某人能够“喜欢”某事,或“分享到墙上”,您可能不需要服务器端集成,但再次如前所述 - 如果您确实需要“登录facebook”,它绝对是 oAuth 并且需要服务器端集成。

    两者都有什么好处?

    • 这里有很多话要说...但几乎见上面的答案,如果您有更具体的问题,可以进入更详细的信息。

    进行服务器端集成(哪些 gem/gems)的最佳方法是什么?

    【讨论】:

    猜你喜欢
    • 2014-04-13
    • 1970-01-01
    • 2019-03-17
    • 2011-02-25
    • 1970-01-01
    • 1970-01-01
    • 2016-08-22
    • 1970-01-01
    • 2015-06-23
    相关资源
    最近更新 更多