Skip to main content

authnz_common/types/users/
logout.rs

1//! Logout module.
2
3#[cfg(any(feature = "app-server-types", feature = "authnz-server-types"))]
4use impulse_server_kit::salvo;
5#[cfg(any(feature = "app-server-types", feature = "authnz-server-types"))]
6use salvo::oapi::ToSchema;
7use serde::{Deserialize, Serialize};
8
9#[cfg_attr(any(feature = "app-server-types", feature = "authnz-server-types"), derive(ToSchema))]
10#[derive(Deserialize, Serialize, PartialEq, Eq, Hash, Clone, Debug)]
11/// Request to log out.
12///
13/// Note that logout revokes refresh token, but access token is still valid for at least 15 minutes by default (see `TokenLifetimes`).
14/// Revoke can be made without even client token if it is compromised.
15pub struct UserLogoutRequest {
16  /// Access token (MPAAT).
17  pub access_token: String,
18  /// Refresh token (random bytes).
19  pub refresh_token: String,
20}
21
22impl UserLogoutRequest {
23  /// Creates new user logout request.
24  pub fn new(act: impl ToString, rft: impl ToString) -> Self {
25    Self {
26      access_token: act.to_string(),
27      refresh_token: rft.to_string(),
28    }
29  }
30}