1

我正在使用 rabl gem

显示.rabl

object @user
attributes :id, :name, :realname, :email

我得到

{"user":{"id":1,"name":"username","email":"mail@mail.com"}}

问题是任何人都可以在打开http://website.com/users/user.json链接时看到此信息

在我的数据库中,登录后的每个用户都有唯一的 auth_token 字段。

问题是-我只想通过此链接查看此信息-http: //website.com/users/user.json?auth_token=yLrUAxWB2szkvx9jBEGv

4

1 回答 1

1

创建支票或使用一些授权宝石,例如cancan.

原始示例,以便您掌握(未经测试,在电话上写...):

class MyController < ApplicationController
  before_filter :check_token_if_json
  respond_to :html, :json

  def show
    @user = User.find params[:id]

    respond_with(@user)
  end

  private

  def check_token_if_json
    if params[:format] == 'json'
      raise "Access denied" and return unless params[:token] == 'my_required_token'
    end
end
于 2013-01-17T10:31:10.930 回答