Проверил настоящие браузеры, без встроенных браузеров приложений
Неважно, какой мобильный браузер — всегда обнаруживается CSRF
Вопрос:
Что в Discourse может привести к тому, что социальные входы только на мобильных устройствах теряют сессию/куки и завершаются с ошибкой csrf_detected?
Я нашёл решение проблемы, при которой социальные логины (Google, Discord и т. д.) на мобильных устройствах не работают с ошибкой csrf_detected, хотя на ПК всё функционирует корректно.
Причина крылась в моей теме:
Собственный JavaScript-скрипт в секции <head> темы постоянно перезагружал страницу (window.location.replace) на мобильных устройствах.
Этот принудительный редирект уничтожал временный CSRF-токен, необходимый для валидации сессии после обратного вызова от Google/Discord.
Решение:
Я удалил весь скрипт, отвечающий за принудительное отображение мобильной версии, из темы.
Если у вас возникли похожие проблемы и вы используете кастомную тему, проверьте, нет ли там скриптов, вызывающих редиректы. В моём случае виновником был именно он!