#ruby-on-rails #reactjs
#ruby-on-rails #reactjs
Вопрос:
У меня есть интерфейс react, который отправляет AJAX-запросы /users/sign_in
, за исключением того, что интерфейс react не может получить доступ ни к одному из заголовков авторизации, которые должны возвращаться.
Я подозреваю, что это потому, что серверная часть rails отправляет перенаправление 302 при успешном входе в систему.
Мне нужен доступ к заголовкам авторизации, и кажется, что у интерфейса нет другого выбора, кроме как следовать перенаправлениям.
Нужно ли мне запретить перенаправление devise при успешном входе в систему или есть какая-то другая причина, по которой мой интерфейс не может видеть заголовки авторизации?
Я установил gem, devise-jwt
который добавляет заголовок авторизации к ответу при успешных попытках входа в систему.
Ответ №1:
Я думаю, вам нужно добавить приведенный ниже код в ваше приложение.rb
config.middleware.insert_before 0, Rack::Cors do
allow do
origins '*'
resource(
'*',
headers: :any,
expose: ["Authorization"],
methods: [:get, :patch, :put, :delete, :post, :options, :show]
)
end
завершение
Комментарии:
1. Да, я добавил это, и я все еще не вижу этого. Я думаю, мне нужно отключить перенаправление после успешных попыток входа в систему. Если я использую cURL и делаю простой POST-запрос без последующей
/users/sign_in
отправки, ответом будет 302 с включенным заголовком авторизации. Итак, я вижу результат просто отлично с помощью cURL … браузер (из того, что я прочитал) должен следовать этому проклятому перенаправлению 302 … и поэтому похоже, что заголовки просто потеряны.