1

我启用了 enable_single_sign_out: true。

我有两个应用程序,一个在 Rails 中,另一个在 Django,

我希望当我登录一个应用程序时,我会刷新我的另一个应用程序,然后我会自动登录。

山姆的方式,如果我从一个应用程序中退出,并刷新其他应用程序,我也会退出它。

如何使用 ruby​​cas-server 实现这个场景。

目前,当我登录一个应用程序并转到第二个应用程序并单击登录时,它将自动登录。但我必须分别明确注销这两个应用程序。

4

1 回答 1

2

我不了解 Django 客户端(rubycas-server 文档说目前并非所有客户端应用程序都支持单点注销)但是为了让 Ruby CAS 客户端支持单点注销,您需要执行以下操作(在客户端应用程序):

  1. Rails 会话存储必须设置为 ActiveRecord: config.action_controller.session_store = :active_record_store

  2. 服务器必须能够读取和写入 RAILS_ROOT/tmp/sessions。如果您处于集群环境中,则该目录的内容必须在所有服务器实例之间共享。

  3. 必须禁用跨站点请求伪造保护。在您的 application.rb:self.allow_forgery_protection = false中 (或者更确切地说,您可能只想对 CAS 过滤器后面的操作禁用伪造保护。)

更多信息可以在这里找到:https ://github.com/gunark/rubycas-client#readme

于 2011-08-08T23:48:24.367 回答