headless_lms_server/domain/oauth/
token_response.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Serialize, Deserialize, PartialEq, Eq, Clone)]
4pub struct TokenResponse {
5 pub access_token: String,
6 #[serde(skip_serializing_if = "Option::is_none")]
7 pub id_token: Option<String>,
8 #[serde(skip_serializing_if = "Option::is_none")]
9 pub refresh_token: Option<String>,
10 pub token_type: String,
11 pub expires_in: u32,
12 pub scope: String,
14}
15
16impl std::fmt::Debug for TokenResponse {
17 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
18 f.debug_struct("TokenResponse")
19 .field("access_token", &"<redacted>")
20 .field("id_token", &self.id_token.as_ref().map(|_| "<redacted>"))
21 .field(
22 "refresh_token",
23 &self.refresh_token.as_ref().map(|_| "<redacted>"),
24 )
25 .field("token_type", &self.token_type)
26 .field("expires_in", &self.expires_in)
27 .field("scope", &self.scope)
28 .finish()
29 }
30}