1use std::collections::HashMap;
2
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, Serialize, Deserialize)]
7pub struct Identity {
8 pub provider_id: String,
10 pub external_id: String,
12 pub email: Option<String>,
14 pub username: Option<String>,
16 pub attributes: HashMap<String, String>,
18}
19
20#[derive(Debug, Clone, Serialize, Deserialize)]
22pub struct OAuthToken {
23 pub access_token: String,
25 pub token_type: String,
27 #[serde(default, skip_serializing_if = "Option::is_none")]
29 pub expires_in: Option<u64>,
30 #[serde(default, skip_serializing_if = "Option::is_none")]
32 pub refresh_token: Option<String>,
33 #[serde(default, skip_serializing_if = "Option::is_none")]
35 pub scope: Option<String>,
36 #[serde(default, skip_serializing_if = "Option::is_none")]
38 pub id_token: Option<String>,
39}