ruby-on-rails - 如何在RestClient获取请求头中传递参数并访问 Controller 中的参数

标签 ruby-on-rails ruby rest-client

我在 ruby​​ on Rails 应用程序中使用 RestClient 向我的应用程序的 api 发送 get 请求,如下所示:

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

问题是我还必须传递 secret API key 才能访问 get 请求 header 中的 api。我不知道如何在请求 header 中传递此参数以及如何在 Controller 内访问此参数 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函数中,我想检查请求 header 中api_key的值,以确定该请求是否将被授予对该函数的访问权限。

最佳答案

您可以通过第二个参数将 header 值设置为 RestClient.get

RestClient.get "/url?params1=<val1>&param2=<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

参见:

关于ruby-on-rails - 如何在RestClient获取请求头中传递参数并访问 Controller 中的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20510573/

相关文章:

ruby-on-rails - 同一资源的两个页面 - ActiveAdmin

ruby-on-rails - Javascript Blob 的 Ruby 其余客户端 API 请求

ruby-on-rails - 使用Rails从子域读取域的cookie

ruby-on-rails - 创建嵌套哈希来组织对象

ruby-on-rails - 如何卸载rails中 "require"语句加载的文件

ruby-on-rails - 通过 ROR 连接到 AppNexus API

ruby - Dir.glob 和 Find 之间的区别

C# 使用 RestSharp 发布 XML 文件

java - 是否有类型良好的 Scala(或 Java)库来使用 JSON Web API?

mysql - SQLite 和其他数据库中的 Arel