Skip to main content

auth_oidc/
dto.rs

1use serde::{Deserialize, Serialize};
2use serde_json::Value;
3use utoipa::ToSchema;
4
5#[derive(Debug, Serialize, ToSchema)]
6pub struct OidcProviderMetadataResponse {
7    pub issuer: String,
8    pub authorization_endpoint: String,
9    pub token_endpoint: String,
10    pub jwks_uri: String,
11    pub response_types_supported: Vec<String>,
12    pub subject_types_supported: Vec<String>,
13    pub id_token_signing_alg_values_supported: Vec<String>,
14    pub scopes_supported: Vec<String>,
15    pub claims_supported: Vec<String>,
16    pub code_challenge_methods_supported: Vec<String>,
17    pub token_endpoint_auth_methods_supported: Vec<String>,
18    pub lenso_console_client_id: String,
19}
20
21#[derive(Debug, Serialize, ToSchema)]
22pub struct OidcJwksResponse {
23    pub keys: Vec<Value>,
24}
25
26#[derive(Debug, Deserialize, ToSchema)]
27pub struct OidcAuthorizeQuery {
28    #[serde(default)]
29    pub response_type: Option<String>,
30    #[serde(default)]
31    pub client_id: Option<String>,
32    #[serde(default)]
33    pub redirect_uri: Option<String>,
34    #[serde(default)]
35    pub scope: Option<String>,
36    #[serde(default)]
37    pub state: Option<String>,
38    #[serde(default)]
39    pub nonce: Option<String>,
40    #[serde(default)]
41    pub code_challenge: Option<String>,
42    #[serde(default)]
43    pub code_challenge_method: Option<String>,
44}
45
46#[derive(Debug, Deserialize, ToSchema)]
47pub struct OidcTokenRequest {
48    #[serde(default)]
49    pub grant_type: Option<String>,
50    #[serde(default)]
51    pub code: Option<String>,
52    #[serde(default)]
53    pub redirect_uri: Option<String>,
54    #[serde(default)]
55    pub client_id: Option<String>,
56    #[serde(default)]
57    pub code_verifier: Option<String>,
58}
59
60#[derive(Debug, Serialize, ToSchema)]
61pub struct OidcTokenResponse {
62    pub access_token: String,
63    pub token_type: String,
64    pub expires_in: u64,
65    pub id_token: String,
66    pub scope: String,
67}