使用 Rack-cors 和 Grape 添加自定义响应 header
Add custom response header with Rack-cors and Grape
我正在 Rails API 上开发带有 Ruby 的 Ionic(Cordova) 应用程序。
我想在登录后使用响应 headers 到 return 令牌。
我正在使用 rack-cors
gem 使跨源请求工作:
application.rb
config.middleware.insert_after Rails::Rack::Logger, Rack::Cors, :logger => Rails.logger do
allow do
origins '*'
resource '/api/*', :headers => :any, :methods => [:get, :post, :options, :put]
end
end
和 grape gem 来管理我的 API 路线。
但是我找不到在我的回复中添加 header 的方法,因为我添加了 rack-cors
.
我试过这个:
header('Access-Token', user.token.key)
但是没用。无论我做什么,我最终都会得到那些 headers:
{cache-control: "max-age=0, private, must-revalidate", content-type:
"application/json"}
谁能帮我解决这个问题?
我用了gem 'devise_token_auth'
此外,我在 application.rb 中有此配置。
class Application < Rails::Application
# Do not swallow errors in after_commit/after_rollback callbacks.
config.active_record.raise_in_transactional_callbacks = true
config.middleware.use Rack::Cors do
allow do
origins '*'
resource '*',
:headers => :any,
:expose => ['access-token', 'expiry', 'token-type', 'uid', 'client'],
:methods => [:get, :post, :options, :delete, :put]
end
end
end
我正在 Rails API 上开发带有 Ruby 的 Ionic(Cordova) 应用程序。
我想在登录后使用响应 headers 到 return 令牌。
我正在使用 rack-cors
gem 使跨源请求工作:
application.rb
config.middleware.insert_after Rails::Rack::Logger, Rack::Cors, :logger => Rails.logger do
allow do
origins '*'
resource '/api/*', :headers => :any, :methods => [:get, :post, :options, :put]
end
end
和 grape gem 来管理我的 API 路线。
但是我找不到在我的回复中添加 header 的方法,因为我添加了 rack-cors
.
我试过这个:
header('Access-Token', user.token.key)
但是没用。无论我做什么,我最终都会得到那些 headers:
{cache-control: "max-age=0, private, must-revalidate", content-type: "application/json"}
谁能帮我解决这个问题?
我用了gem 'devise_token_auth'
此外,我在 application.rb 中有此配置。
class Application < Rails::Application
# Do not swallow errors in after_commit/after_rollback callbacks.
config.active_record.raise_in_transactional_callbacks = true
config.middleware.use Rack::Cors do
allow do
origins '*'
resource '*',
:headers => :any,
:expose => ['access-token', 'expiry', 'token-type', 'uid', 'client'],
:methods => [:get, :post, :options, :delete, :put]
end
end
end