簡體   English   中英

從Rails API GET請求收集客戶端域

[英]Gather Client Domain from Rails API GET Request

在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 [ '原點']

我需要這個,因為我檢查了訪問令牌,並且請求來自注冊了訪問令牌的域。

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

謝謝您的幫助!

我最終堅持使用IP地址:

head :unauthorized unless (api_app && (api_app.request_origin == request.env["HTTP_X_REAL_IP"] ||= request.env["REMOTE_ADDR"]))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM