request.headers [' HTTP_AUTH_TOKEN']不适用于https服务器

时间:2015-06-19 13:43:52

标签: ruby-on-rails http

我的代码尝试从rails中的头文件中读取auth_token。

def authenticate_through_header
  custom_header_value = request.headers['HTTP_AUTH_TOKEN']
end

这对https服务器不起作用,但适用于http服务器。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

事实证明,我需要使用密钥HTTP_X_AUTH_TOKEN才能获取值。我还需要在我的所有自定义标头之前添加X-,否则网络服务器无法识别自定义标头。

答案 1 :(得分:0)

我自己也会遇到这个问题,并使用完全相同的标题名称。

找到答案here

  

如果没有在on;上明确设置underscores_in_headers,则nginx将静默删除带有下划线的HTTP标头(根据HTTP标准,这些标头完全有效)。这样做是为了防止在将标头映射到CGI变量时出现歧义,因为短划线和下划线都会在该过程中映射到下划线。

我假设您的实时服务器是使用nginx作为反向代理的https,而开发版本只是美洲狮或类似的。