use super::{AuthContext, AuthResult, AuthSchema, SsoPlugin};
impl SsoPlugin {
pub(super) async fn clear_saml_signout_tracking<S: AuthSchema>(
&self,
request: &impl alibi_core::session::SessionRequest,
ctx: &AuthContext<S>,
) -> AuthResult<()> {
let Ok((_, session)) = ctx.require_cached_session(request).await else {
return Ok(());
};
let lookup = format!("saml-session-by-id:{}", session.id);
if let Some(record) = ctx.verifications().find(&lookup).await? {
let key = record.value()?.to_owned();
if key.is_empty() {
return Ok(());
}
_ = ctx.verifications().delete(&key).await;
_ = ctx.verifications().delete(&lookup).await;
}
Ok(())
}
}