How to pass parameter in RestClient get request header and to access the parameter in controller

StackOverflow https://stackoverflow.com/questions/20510573

  •  31-08-2022
  •  | 
  •  

Pergunta

I am using RestClient in my ruby on rails app to send a get request to an api of my app like the following:

RestClient.get(url?params1=<val1>&param2=<val2>..)

The problem is that I also have to pass the secret API key to access the api in header of the get request. I have no idea how to pass this parameter in header of the request and how to access this param api_key inside my controller to validate the request to get access to that api. So I want something like that:

class StudentsController < ApplicationController

 before_filter :validate_access, :only => [:<api_name>]

 private

   def validate_access
     .... < I don't have any idea what to write here>

In this restrict_access function I want to check the value of api_key in request header to determine whether the request will be given access to that function or not.

Foi útil?

Solução

You can set header values to RestClient.get by 2nd argument.

RestClient.get "/url?params1=<val1>&param2=<val2>..", {x_your_api_token: "YOUR_API_TOKEN"}

And in ActionController, you can get it by request.headers["X-Your-API-Token"]

def validate_access
  api_token = request.headers["X-Your-API-Token"] # header name is case insentsitive
  ...
end

See:

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top