Добавить пользовательский заголовок ответа с Rack-Cors и Grape
Я разрабатываю приложение Ionic(Cordova) с API Ruby on Rails. Я хочу использовать заголовки ответа для возврата токена после входа в систему. я использую rack-cors
драгоценный камень, чтобы заставить Cross Origin Request работать:
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. Но я не могу найти способ добавить заголовок к моему ответу, так как я добавил rack-cors
,
Я попробовал это:
header('Access-Token', user.token.key)
Но это не работает. Что бы я ни делал, я получаю эти заголовки:
{cache-control: "max-age = 0, private, must-revalidate", тип контента: "application/json"}
Кто-нибудь может мне помочь с этим вопросом?
1 ответ
Решение
Я использовал 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