Estamos tentando implantar fóruns Discourse no modo de produção. Estamos usando nosso próprio provedor OAuth e, portanto, utilizando o plugin discourse-oauth2-basic para habilitar essa funcionalidade.
Estamos recebendo o seguinte erro ao fazer login com nosso provedor OAuth personalizado:
“Falha na autenticação! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | CSRF detectado”
Após algumas etapas de depuração, verificamos que o “omniauth.state” está ausente na sessão após a redireção, o que impede a validação do campo state em /auth/oauth2_callback. Qualquer ajuda será muito apreciada.
Observação: Toda a configuração está funcionando corretamente no modo de desenvolvimento.
Sim @david, a autenticação está começando e terminando no mesmo navegador. O valor de same_site_cookies não foi alterado. Ele está definido como padrão para “Lax”.
Olá @david, estamos executando o Discourse usando containers Docker. O arquivo Docker que estamos utilizando está em discourse_docker/image/base at master · discourse/discourse_docker · GitHub. Como não há um script para iniciar o Discourse dentro do container Docker, adicionamos um pequeno script de inicialização que pré-compila e inicia o Discourse.
RAILS_ENV=production bundle exec rake db:migrate
RAILS_ENV=production bundle exec rake assets:precompile
RAILS_ENV=production bundle exec rails server --binding=0.0.0.0
Infelizmente, é muito difícil para nós oferecer suporte à comunidade aqui para instalações personalizadas. Por favor, tente configurar o Discourse usando o guia oficial. Se você não conseguir fazer isso, talvez alguém no Marketplace possa ajudar mediante uma taxa.