ruby-on-rails - 使用来自请求 header 的 auth_token 而不是来自 Rails 3/devise 的 POST/PUT 参数

标签 ruby-on-rails authentication devise token

我需要在 Rails 3.1 API 中使用基于 token 的身份验证以及最新版本的设计。到目前为止没有问题。

现在我不想将我的 :auth_token 附加到客户端的 POST/PUT 参数,而是将此 token 作为请求 header 发送,如 HTTP_X_MYAPP_AUTH_TOKEN”。

我可以说服设计使用它而不是来自参数的 token 吗?是否可以同时实现,以便我的 API 用户可以通过请求 header 或 POST/PUT 参数发送 token ?

问候。菲利克斯

最佳答案

我有同样的需求并想出了这个解决方案:

class YourController < ApplicationController
  prepend_before_filter :get_api_key
  before_filter :authenticate_user!

  private
  def get_api_key
    if api_key = params[:api_key].blank? && request.headers["X-API-KEY"]
      params[:api_key] = api_key
    end
  end
end

注意我有我的设计 Devise.token_authentication_key设置为 api_key .
config.token_authentication_key = :api_key

关于ruby-on-rails - 使用来自请求 header 的 auth_token 而不是来自 Rails 3/devise 的 POST/PUT 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7399645/

相关文章:

ruby-on-rails - bcrypt 错误 : Devise ruby 2. 0 和 rails 4.0

ruby-on-rails - 设计注册表单的路线

ruby-on-rails - Rails 3 上的任何 Assets 管理器?

authentication - Spring MVC 3.1 如何在自定义身份验证提供程序(实现 AuthenticationProvider)中访问 HttpSession

java - RuntimeException:无法实例化 Activity 组件信息

bash - 期望脚本返回值

ruby-on-rails - 设备中未定义的局部变量或方法 `resource_class'

javascript - 我怎样才能让ahoy的javascript异步函数跟踪同步

ruby-on-rails - 如何防止 Rails Console 对数据库事务执行立即回滚?

javascript - S3 直接上传 + Rails + Dropzone.js