Skip to content
Clone
9362a10
22 lines 717 B Rust
use auth::session::Session;
use export::http::{Redirect, Response, State};
use crate::auth::errors::ApiError;
use crate::auth::session::cookie::append_cookie;
use crate::auth::services::AuthService;
pub async fn logout(
State(service): State<AuthService>,
session: Session,
) -> Result<Response, ApiError> {
if let Some(client) = service.state.kenauth.as_ref() {
let request_id = export::middleware::request_id().unwrap_or_default();
let _ = client.service().logout(session, request_id).await;
}
let mut response = Redirect::to("/").into_response();
append_cookie(
&mut response,
&token::clear_session_cookie(&service.config().jwt),
);
Ok(response)
}