Falha de autenticação! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError" Erro devido à sessão[\"omniauth.state\"] ausente

Saudações,

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.

Obrigado.

A autenticação está iniciando e terminando no mesmo navegador? Você alterou o valor padrão da configuração de cookies same site?

2 curtidas

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”.

Você está seguindo nosso guia de instalação padrão?

Infelizmente, é muito complicado para nós ajudarmos aqui sem visibilidade do site. Você pode compartilhar um link?

2 curtidas

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.

2 curtidas