1

我在这个地址中有一个 json 数据:

http://localhost:3000/api/v1/apisearch

这些 json 数据是用葡萄 gem 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从这个地址获取数据的搜索引擎

这是我的咖啡脚本文件:

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如果类型可以访问这些数据,我不想允许用户。只能从我自己的应用程序访问我的内部搜索引擎的这些数据。

我怎样才能限制从葡萄只访问我自己的应用程序的数据?

谢谢

4

1 回答 1

0

我是葡萄和 Rails 的新手,但如果你不必使用 grappa 并且可以使用 Rails,我会想到这里。

您可以使用 Rails 检查“请求者”URL,如果它来自 yourapplication.com,则允许访问,否则拒绝。

于 2013-03-16T18:59:32.940 回答