Единый вход / выход не работает на rubycas-сервере
Я включил enable_single_sign_out: true.
У меня есть два приложения, одно в Rails, другое в Django,
Я хочу, чтобы при входе в одно приложение я просто обновлял свое другое приложение и автоматически входил в систему.
Сам, кстати, если бы я выпал из одного приложения и обновил другое приложение, я бы тоже вышел из него.
Как реализовать этот сценарий с rubycas-сервером.
В настоящее время, когда я захожу в одно приложение, захожу во второе и просто нажимаю на кнопку "Войти", он автоматически входит в систему. Но я должен явно выйти из обоих приложений по отдельности.
1 ответ
Я не знаю о клиенте Django (в документации rubycas-server говорится, что в настоящее время не все клиентские приложения поддерживают единый выход), но для того, чтобы клиент Ruby CAS поддерживал единый выход, необходимо сделать следующее (в клиентское приложение):
Хранилище сеансов Rails должно быть установлено в ActiveRecord:
config.action_controller.session_store = :active_record_store
Сервер должен иметь возможность чтения и записи в RAILS_ROOT/tmp/ сеансы. Если вы находитесь в кластерной среде, содержимое этого каталога должно быть общим для всех экземпляров сервера.
Защита от подделки межсайтовых запросов должна быть отключена. В вашем application.rb:
self.allow_forgery_protection = false
, (Вернее, вы можете отключить защиту от подделки только для действий, которые находятся за фильтром CAS.)
Дополнительную информацию можно найти здесь: https://github.com/gunark/rubycas-client