我使用了rabl gem
show.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
答案 0 :(得分:1)
创建支票或使用某些授权gem,例如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