【问题标题】:Share a Cookie between Rails and Jekyll在 Rails 和 Jekyll 之间共享 Cookie
【发布时间】:2015-02-10 02:21:43
【问题描述】:

我目前正在为我的网站编写 Jekyll 博客。它将位于站点的子域下(blog.site.com 与 site.com),我希望能够绑定到主网站的登录系统(使用 Sorcery gem 运行的 Rails 3.0)。

我的用例是我希望能够根据用户的登录状态更改博客的导航栏:

  • 如果用户已登录,则应显示他/她的个人资料图片和用户名以及下拉选项
  • 否则应该显示注册/登录链接

我该怎么做呢?我查看了http://api.rubyonrails.org/classes/ActionDispatch/Cookies.html,我的网站没有处理任何 cookie 逻辑,所有这些都是通过 Sorcery gem 处理的。

谢谢!

【问题讨论】:

    标签: ruby-on-rails cookies jekyll


    【解决方案1】:

    cookie 方法

    登录您的网站后查看浏览器中的 cookie。 (在 Firefox 中,您可以在 Preferences->Security->Delete cookies 中找到它们) Rails 默认行为是使用会话 ID 设置 cookie。你可以在你的 jekyll 网站上选择这个来了解用户是否登录。由于 jekyll 使用静态页面,因此您需要使用 javascript 来执行此操作。

    如果用户已登录,您还需要通过 cookie 传达个人资料图片和用户名。只需使用您链接到的指南从 rails 设置 cookie,然后在 jekyll 端使用 javascript 获取它们。

    替代品

    另一种方法是从 rails 站点 iframe 导航栏。只需在您的 rails 站点中公开一条路线,该路线返回您需要的信息的一部分。检查用户是否登录当然很重要!

    另一种选择是使用 javascript 调用 rails 应用程序中的 api,它返回一些可用于呈现导航栏的 json。

    【讨论】:

      猜你喜欢
      • 2014-08-28
      • 2013-07-20
      • 2014-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-31
      • 1970-01-01
      相关资源
      最近更新 更多