我在这个地址有一个json数据:
http://localhost:3000/api/v1/apisearch
这些json数据是用葡萄宝石https://github.com/intridea/grape生成的:
class API_v1 < Grape::API
version 'v1', :using => :path, :vendor => 'myapp', :format => :json
get :apisearch do
Object.search({query: "*#{params[:q]}*"}).map{ |object| {id: object.title, text: object.description } }
end
end
我有一个搜索引擎,可以使用select2
从此地址获取数据这是我的coffescript文件:
jQuery ->
$('#query_txt').select2
width: 'resolve'
allowClear: true
minimumInputLength: 2
ajax:
url: "api/v1/apisearch"
dataType: 'json'
data: (term, page) -> {q: term}
results: (data, page) ->
results: data
脚本工作正常,但我想保护外部请求的这个地址。
如果类型http://localhost:3000/api/v1/apisearch
可以访问这些数据,我不想允许用户。只能从我自己的应用程序访问我的内部搜索引擎中的这些数据。
如何限制访问数据仅限于我自己的应用程序葡萄?
谢谢
答案 0 :(得分:0)
我是葡萄和Rails的新手,但如果您不必使用格拉巴酒并且可以使用Rails,那么就会想到这一点。
您可以使用Rails检查“请求者”URL,如果它来自yourapplication.com,则允许访问,否则拒绝。