Для тех, кто столкнулся с этой ошибкой, я исправил её, заполнив настройку «secrets провайдера SSO» для домена клиента:
В коде Discourse, когда этот секрет не задан, вызов OpenSSL::HMAC.hexdigest завершается ошибкой с следующим сообщением в логах:
TypeError (неявное преобразование nil в String) /var/www/discourse/lib/single_sign_on.rb:114:in `hexdigest’
Вот соответствующий путь в коде:
- discourse/lib/single_sign_on_provider.rb at f364317625ee273d1e8983faa271831db912953b · discourse/discourse · GitHub
- discourse/lib/single_sign_on.rb at f364317625ee273d1e8983faa271831db912953b · discourse/discourse · GitHub
- discourse/lib/single_sign_on.rb at f364317625ee273d1e8983faa271831db912953b · discourse/discourse · GitHub
Сообщение об ошибке определённо следует улучшить! _Edit: и оно было улучшено — см. https://meta.discourse.org/t/confusing-unpolished-error-message-when-using-discourse-as-sso-provider/123762_
