从 Rails API GET 请求收集客户端域

问题描述 投票:0回答:1

在 Rails API 上捕获客户端请求域的最简单方法是什么?

示例:

如果我使用 https://www.hurl.it/ 将 GET 请求发布到:

https://staging.mysite.com/api/v1/products?access_token=7b9f3cddd3914a6f45fa692997fe6dc9

如何捕获请求来自

hurl.it
?我试过:

  • request.host
  • request.url
  • request.referer
  • request.headers['origin']

我需要这个,因为我检查了访问令牌并且请求来自注册访问令牌的域。

API控制器:

module Api
  module V1
    class ApiController < ApplicationController
      respond_to :json
      before_filter :restrict_access

      private

      def restrict_access
        api_app = ApiApp.find_by_access_token(params[:access_token])
        binding.pry
        head :unauthorized unless (api_app && (api_app.request_origin.include? request.host.split('?').first))
      end
    end
  end
end

Rails 版本:4.2

ruby-on-rails request get http-headers
1个回答
0
投票

我最终坚持使用 IP 地址:

head :unauthorized unless (api_app && (api_app.request_origin == request.env["HTTP_X_REAL_IP"] ||= request.env["REMOTE_ADDR"]))
© www.soinside.com 2019 - 2024. All rights reserved.