提问人:griswoldbar 提问时间:11/14/2023 更新时间:11/14/2023 访问量:12
当 Devise 超时时调用 SLO 终结点的最佳方式是什么?
What is the best way to call an SLO endpoint when Devise times out?
问:
我正在使用 Devise 的模块。对于使用 SSO 登录的用户,我希望在会话超时时点击身份提供程序上的 SLO 终结点。Timeoutable
我试图找出插入此逻辑的最佳位置。
Timeoutable
的逻辑主要存在于它的钩子中,在我看来,这是放置我的 SLO 标注的正确位置。但是这个解决方案(我认为)需要我用我自己的定制版本替换,这似乎有点笨拙。Warden::Manager.after_set_user
Timeoutable
我还考虑过将逻辑放在自定义故障应用程序中,例如
config.warden do |manager|
manager.failure_app = Class.new(Devise::FailureApp) do
def redirect
if warden_message == :timeout && its_an_sso_session
redirect_to slo_path
else
super
end
end
end
end
为此,我需要将它是 SSO 会话的事实存储在 Failure App 可以看到的某个地方,例如 cookie(目前我将其存储在 Rails 会话本身中,当我们到达 Failure App 时,该会话已被销毁)。
关于做到这一点的最佳方法有什么想法吗?在某个地方有没有其他的钩子可以使用?
答: 暂无答案
评论