gpt4 book ai didi

javascript - 如何在客户端管理当前用户 session ?

转载 作者:数据小太阳 更新时间:2023-10-29 04:12:00 26 4
gpt4 key购买 nike

我有一个 Web 应用程序,它是 Rails 和 Backbone 的一部分.有些东西,比如我实现的评论系统,主要是在客户端用 Javascript 编写的。 Rails 后端通过来回传递 JSON 来简单地处理持久性。

当我从服务器呈现页面时,处理谁可以看到什么很容易。我可以这样说

<li class="comment">
<span class="comment_text"><%= @comment.text %></span>
<% if user_signed_in? and current_user == @comment.author %>
<a class="delete" href="some delete url">Delete Comment</a>
<% end %>
</li>

如果当前用户是评论的作者,那只会呈现删除特定评论的链接。没问题。

但是,现在我正在使用 JavaScript templates 在客户端呈现评论(这是缓存的 afaik),我无权访问 current_user。我无法判断当前使用我的应用的用户是否是评论的作者,所以我无法控制他能看到什么。

当然,他将无法以任何方式删除评论,因为我也在服务器上授权,但我不想一开始就显示链接。

我怎样才能做到这一点?

我喜欢关于该主题的一些资源链接以及答案,因为我似乎找不到任何资源,尽管在我看来这是一个本应在无数博客中涵盖的主题。

最佳答案

我更喜欢使用以下方法。

首先,在您的布局中,在服务器端生成,传递您在客户端需要的当前用户数据:

<script type="text/javascript">
window.currentUser = {
id : "<%=current_user.id%>"
}
</script>

它可以在您的 EJS 模板中访问。现在在模板中,您可以进行与服务器端相同的检查:

<% if (window.currentUser && window.currnetUser.id == comment.author.id) { %>
<a class="delete" href="some delete url">Delete Comment</a>
<% } %>

关于javascript - 如何在客户端管理当前用户 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7345569/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com