Voici la méthode qui déclenche l’erreur :
def nonce_valid?
if SiteSetting.discourse_connect_csrf_protection
nonce && @secure_session[nonce_key].present?
else
nonce && Discourse.cache.read(nonce_key).present?
end
end
Elle vérifie que le nonce a été généré par Discourse pour la même session que celle qui redirige l’utilisateur vers Discourse.
Vous pourriez essayer de définir le paramètre du site discourse_connect_csrf_protection sur false. Sa valeur par défaut est true. C’est un paramètre de site caché, il ne peut donc être désactivé que depuis la console Rails.
Lorsqu’il est activé, le paramètre discourse_connect_csrf_protection garantit que l’ensemble du processus d’authentification SSO se déroule par des redirections de navigateur. Si vous démarrez le processus d’authentification en effectuant une requête d’arrière-plan vers session/sso, vous devrez le désactiver. Plus de détails ici : DiscourseConnect flow no longer functions - #5 by david.