ones_oidc/
oidc_backend.rs

1use super::oidc_types::LoginHintKind;
2use serde::{Deserialize, Serialize};
3
4#[derive(Deserialize, PartialEq, Eq)]
5#[serde(rename_all = "lowercase")]
6pub enum AuthRequestResource {
7    Idp,
8    Device,
9}
10
11#[derive(Deserialize)]
12pub struct CibaLoginRequestFrontend {
13    #[serde(rename = "loginHintKind")]
14    pub login_hint_kind: LoginHintKind,
15    #[serde(rename = "userIdentifier")]
16    pub user_identifier: String,
17    #[serde(rename = "sessionId")]
18    pub session_id: Option<String>,
19    pub resource: AuthRequestResource,
20    pub scope: String,
21}
22
23// The resource should be fixed at the server level
24#[derive(Deserialize)]
25#[allow(dead_code)]
26pub struct CibaLoginRequestFrontendOptionalResource {
27    #[serde(rename = "loginHintKind")]
28    pub login_hint_kind: LoginHintKind,
29    #[serde(rename = "userIdentifier")]
30    pub user_identifier: String,
31    #[serde(rename = "sessionId")]
32    pub session_id: Option<String>,
33    pub resource: Option<AuthRequestResource>,
34    pub scope: Option<String>,
35}
36
37// The resource should be fixed at the server level
38#[derive(Deserialize)]
39#[allow(dead_code)]
40pub struct CibaLoginRequestFrontendWithoutResource {
41    #[serde(rename = "loginHintKind")]
42    pub login_hint_kind: LoginHintKind,
43    #[serde(rename = "userIdentifier")]
44    pub user_identifier: String,
45    #[serde(rename = "sessionId")]
46    pub session_id: Option<String>,
47    pub scope: Option<String>,
48}
49
50#[derive(Deserialize)]
51#[serde(rename_all = "snake_case")]
52pub struct CibaStatusRequestFrontend {
53    #[serde(rename = "authRequestId")]
54    pub auth_request_id: String,
55}
56
57#[derive(Deserialize)]
58pub struct RefreshTokenRequestFrontend {
59    pub grant_type: String,
60    pub refresh_token: String,
61}
62
63#[derive(Serialize, Deserialize)]
64pub struct QrStatusRequest {
65    #[serde(rename = "sessionId")]
66    pub session_id: String,
67}
68
69impl QrStatusRequest {
70    pub fn from_request_frontend(frontend: QrStatusRequestFrontend) -> Self {
71        Self {
72            session_id: frontend.session_id,
73        }
74    }
75}
76
77#[derive(Deserialize, Clone)]
78pub struct QrStatusRequestFrontend {
79    #[serde(rename = "sessionId")]
80    pub session_id: String,
81}