【问题标题】:how to access user id from cookie using javascript: Rails, Devise, Page Caching如何使用 javascript 从 cookie 访问用户 ID:Rails、Devise、Page Caching
【发布时间】:2011-09-21 17:41:20
【问题描述】:

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

  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 吧?如何访问它?

【问题讨论】:

    标签: javascript ruby-on-rails devise page-caching


    【解决方案1】:

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

    如果您想检查您网站上的可用 cookie,请使用此书签:

    javascript:alert(document.cookie)
    

    【讨论】:

    • 控制器将拒绝任何未经身份验证的请求,这只是为了显示链接。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2016-12-01
    • 1970-01-01
    • 2020-09-08
    • 2011-06-17
    • 2012-03-17
    • 1970-01-01
    • 1970-01-01
    • 2011-02-25
    相关资源
    最近更新 更多