Я унаследовал приложение Ionic, которое использует ng-token-auth
+ devise_token_auth
для обработки аутентификации и сеанса между передней и задней devise_token_auth
.
То, что происходит, довольно странно. Иногда (особенно при медленных соединениях) запрос (или ответ) теряется, и после этого я получаю только 401
http ошибок.
Я знаю, что каждый раз, когда я отправляю запрос, срок действия токена истекает, но когда запрос xhr
отменяется (я полагаю, сервером или браузером, я не знаю), срок действия токена истекает без замены новым. генерируется devise_token_auth
.
Я знаю Rails, но я не знаком ни с Angular, ни с Ionic, и я точно не знаю, где искать.
Прочитав много SO-ответов, в которых никто не видит мою проблему (что происходит локально и при постановке/производстве), я проверил следующее
-
storage
установлено какlocalStorage
. -
config.batch_request_buffer_throttle = 20.seconds
- между отмененными запросами нет шаблона, иногда я выполняю get для имени пользователя, иногда для публикации или добавления в комментарий.
- Это не проблема CORS, потому что это будет происходить всегда или никогда. (более того, я использую прокси, как описано в ионном блоге)
- Возможно, это может быть связано с предварительной ошибкой заголовков Chrome. Но как я могу быть уверен?
Что меня удивляет, так это то, что это случается только иногда и не всегда. (и нет ошибок в бэкэнде)
Единственный обходной путь, который я нашел в документации devise_token_auth, - это изменить config.change_headers_on_each_request
на false
чтобы таким образом избежать регенерации токена.
Но мне не нравится это решение, потому что я думаю, что оно скрывает реальную проблему небезопасным способом вместо решения проблемы потери токена. Любое предложение?