로컬 머신에 Discourse를 설치하고 SSO 로그인을 설정하려고 합니다. 로그인 버튼을 클릭하면 사용자를 리디렉션할 수 있지만, 리디렉션된 후에는 계속 오류가 발생합니다. 로깅을 활성화했는데 다음과 같은 메시지가 표시됩니다: Nonce is incorrect, was generated in a different browser session, or has expired
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.