繁体   English   中英

如何使用javascript从cookie访问用户ID:Rails,Devise,页面缓存

[英]how to access user id from cookie using javascript: Rails, Devise, Page Caching

我为不同的用户提供各种图像库。 在大多数情况下,可能会缓存整个页面。 但是我还想要以下功能:

  1. 如果用户登录并访问自己的画廊,则该用户可以看到覆盖每个图像的“ x”删除链接。

  2. 如果用户登录并在其他人的画廊上,则他们可以看到每个图像的“竖起大拇指”,“竖起大拇指”投票叠加。

  3. 如果用户未登录,则可以看到叠加层进行投票,但是单击它们将弹出一个登录对话框。

我想出的方法是这样的:

  • 在服务器端erb模板中,无论登录状态如何,我将始终生成表决链接并删除链接,但是默认情况下,它们将使用CSS隐藏。
  • 然后,我将根据用户的登录状态使用js来显示它们。

问题是...确定用户在缓存页面上的登录状态的最佳方法是什么? 我可以在缓存页面上使用Cookie吗?

如果我在缓存页面上有一段javascript检查了类似于以下内容的cookie值,是否可以工作:

  if ($.cookie("user_id") == 23) { //if user is owner of this gallery...
     //reveal delete links, hide voting links
  }

我讨厌建立一些特殊的东西来设置cookie ...应该已经存在某种类型的DEVISE cookie对吗? 如何访问?

使用$.cookie("user_id")设置cookie,使用$.cookie("user_id", "23")设置cookie。 但是,您应该提防未经身份验证的滥用:应拒绝每个需要身份验证的无凭据请求,否则登录目的将被破坏。

如果要检查网站上的可用cookie,请使用以下书签:

javascript:alert(document.cookie)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM