tauri_plugin_google_auth/
models.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Deserialize, Serialize, Default, PartialEq)]
4#[serde(rename_all = "lowercase")]
5pub enum FlowType {
6    #[default]
7    Native,
8    Web,
9}
10
11#[derive(Debug, Deserialize, Serialize)]
12#[serde(rename_all = "camelCase")]
13pub struct SignInRequest {
14    pub client_id: String,
15    #[serde(skip_serializing_if = "Option::is_none")]
16    pub client_secret: Option<String>,
17    #[serde(skip_serializing_if = "Option::is_none")]
18    pub scopes: Option<Vec<String>>,
19    #[serde(skip_serializing_if = "Option::is_none")]
20    pub hosted_domain: Option<String>,
21    #[serde(skip_serializing_if = "Option::is_none")]
22    pub login_hint: Option<String>,
23    #[serde(skip_serializing_if = "Option::is_none")]
24    pub redirect_uri: Option<String>,
25    #[serde(skip_serializing_if = "Option::is_none")]
26    pub success_html_response: Option<String>,
27    #[serde(skip_serializing_if = "Option::is_none")]
28    pub flow_type: Option<FlowType>,
29}
30
31#[derive(Debug, Clone, Deserialize, Serialize)]
32#[serde(rename_all = "camelCase")]
33pub struct TokenResponse {
34    pub id_token: Option<String>,
35    pub access_token: String,
36    pub scopes: Vec<String>,
37    pub refresh_token: Option<String>,
38    pub expires_at: Option<i64>,
39}
40
41#[derive(Debug, Deserialize, Serialize)]
42#[serde(rename_all = "camelCase")]
43pub struct SignOutRequest {
44    #[serde(skip_serializing_if = "Option::is_none")]
45    pub access_token: Option<String>,
46    #[serde(skip_serializing_if = "Option::is_none")]
47    pub flow_type: Option<FlowType>,
48}
49
50#[derive(Debug, Clone, Deserialize, Serialize)]
51#[serde(rename_all = "camelCase")]
52pub struct SignOutResponse {
53    pub success: bool,
54}
55
56#[derive(Debug, Deserialize, Serialize)]
57#[serde(rename_all = "camelCase")]
58pub struct RefreshTokenRequest {
59    #[serde(skip_serializing_if = "Option::is_none")]
60    pub refresh_token: Option<String>,
61    pub client_id: String,
62    #[serde(skip_serializing_if = "Option::is_none")]
63    pub client_secret: Option<String>,
64    #[serde(skip_serializing_if = "Option::is_none")]
65    pub scopes: Option<Vec<String>>,
66    #[serde(skip_serializing_if = "Option::is_none")]
67    pub flow_type: Option<FlowType>,
68}