이 오류를 트리거하는 메서드는 다음과 같습니다:
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
이 메서드는 nonce가 사용자를 Discourse로 다시 리디렉션하는 세션과 동일한 세션에 대해 Discourse에 의해 생성되었는지 확인합니다.
discourse_connect_csrf_protection 사이트 설정을 false로 설정해 보실 수 있습니다. 기본값은 true입니다. 이는 숨겨진 사이트 설정이므로 Rails 콘솔에서만 비활성화할 수 있습니다.
활성화된 경우, discourse_connect_csrf_protection 설정은 SSO 인증 프로세스 전체가 브라우저 리디렉션을 통해 이루어지도록 보장합니다. session/sso에 백그라운드 요청을 보내어 인증 프로세스를 시작하는 경우, 이 설정을 비활성화해야 합니다. 자세한 내용은 여기에서 확인하세요: DiscourseConnect flow no longer functions - #5 by david.