0

我正在生成一个令牌来限制某些人对某些帖子的访问。一切正常,但它允许任何拥有令牌的人查看任何帖子,而不是他们只能查看的帖子。例如,如果仅为 post/1 和 post/1 生成令牌,用户仍然可以使用相同的令牌访问 post/2。我该如何解决?

这是我的后控制器

before_filter :restrict_access, only: [:show]

这是我的帖子控制器中的 *private restrict_access 方法*

def restrict_access
  link_token = LinkToken.find_by_token(params[:token])
  head :unauthorized unless link_token
end

提前致谢

收到“找不到没有 ID 的帖子”

def restrict_access
  post = Post.find(params[:post_id])
  link_token = LinkToken.find_by_token(params[:token])
  head :unauthorized unless link_token
end
4

1 回答 1

1

因为您只检查令牌是否存在,所以输入哪个令牌并不重要。我想在您的LinkToken模型中,帖子被保存为外键,否则您将无法修复它。

如果是,请尝试这样的事情(从 Rails 4 开始不推荐使用 find_by_x 助手) 他们返回一个资源

link_token = LinkToken.where(post_id: params[:id], token: params[:token]).first

于 2013-06-03T22:01:58.053 回答