У нас есть 4 сервера приложений, и все они используют один и тот же secret_key_base.Но по какой-то причине мы испытываем эту временную ошибку: Can't verify CSRF token authenticity
.Я подозреваю, что так происходит:
- Пользователь X посещает
GET /posts/new
страницу и сервер приложений 01 обслуживает ее - Пользователь заполняет форму и отправляет ее, но
POST /posts
HTTP-запросидет к серверу приложений 02 и Can't verify CSRF token authenticity
происходит ошибка
^ Я думаю, что это произошло, потому что я смог воспроизвести проблему, выполнив шаги ff:
- Зайдите на страницу
GET app-server-01.mywebsite.com:3000/posts/new
, а затем извлеките маркер authenticity_token из источника HTML - . Запустите HTTP-запрос
POST app-server-01.mywebsite.com:3000/posts
, и он будет работать - . Но когда я отправляю HTTP-запрос
POST app-server-02.mywebsite.com:3000/posts
, он не работает
По какой-то причине токен, генерируемый app-server-01, действителен только для app-server-01.
Значение Rails.application.config.session_store в настоящее время установленона :cookie_store, key: '_mywebsite_session'
Rails 4.2.8 ruby 2.5.1p57
Кто-нибудь знает решение вышеуказанной проблемы?И какова точная причина проблемы?