我在我的ruby on rails应用程序中使用RestClient向我的应用程序的api发送get请求,如下所示:
RestClient.get(url?params1=<val1>¶m2=<val2>..)
问题是我还必须传递秘密API密钥才能访问get请求标头中的api。我不知道如何在请求的标头中传递此参数和如何在我的控制器内访问此param api_key以验证访问该API的请求。所以我想要这样的东西:
class StudentsController < ApplicationController
before_filter :validate_access, :only => [:<api_name>]
private
def validate_access
.... < I don't have any idea what to write here>
在这个restrict_access函数中,我想检查请求头中的api_key的值,以确定是否可以为该请求授予访问权。
答案 0 :(得分:3)
您可以通过第二个参数将标题值设置为RestClient.get
。
RestClient.get "/url?params1=<val1>¶m2=<val2>..", {x_your_api_token: "YOUR_API_TOKEN"}
在ActionController中,您可以通过request.headers["X-Your-API-Token"]
def validate_access
api_token = request.headers["X-Your-API-Token"] # header name is case insentsitive
...
end
请参阅: