在 Rails 和 Jekyll 之间共享 Cookie

Share a Cookie between Rails and Jekyll

我目前正在为我的网站写一个 Jekyll 博客。它将位于网站的子域下(blog.site.com vs site.com),我希望能够连接到主网站的登录系统(Rails 3.0 运行巫术 gem).

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

我该怎么做?我查看了 http://api.rubyonrails.org/classes/ActionDispatch/Cookies.html,我的站点不处理任何 cookie 逻辑,它全部通过 Sorcery gem.

处理

谢谢!

cookie 方法

登录您的站点后,查看浏览器中的 cookie。 (在 firefox 中,您可以在首选项->安全->删除 cookie 中找到它们)Rails 默认行为是使用会话 ID 设置 cookie。你可以在你的 jekyll 网站上选择这个来了解用户是否登录。由于 jekyll 使用静态页面,因此您需要使用 javascript.

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

备选方案

一种替代方法是使用 rails 站点的导航栏 iframe。只需在您的 rails 站点中公开一条路线,其中 returns 部分包含您需要的信息。当然重要的是检查用户是否登录!

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