ayun_auth/
config.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
use jsonwebtoken::Algorithm;
use serde::Deserialize;

#[derive(Debug, Default, Deserialize)]
pub struct Auth {
    #[serde(default)]
    pub guard: Guard,
    #[serde(default)]
    pub jwt: Jwt,
}

#[derive(Debug, Deserialize, Default)]
pub enum Guard {
    #[default]
    #[serde(rename = "jwt")]
    Jwt,
}

#[derive(Debug, Deserialize, Default)]
pub struct Jwt {
    pub secret: String,
    pub expiration: u64,
    #[serde(default)]
    pub algorithm: Algorithm,
    pub location: Option<JwtLocation>,
}

#[derive(Debug, Deserialize)]
pub enum JwtLocation {
    #[serde(rename = "bearer")]
    Bearer,
    #[serde(rename = "query")]
    Query { name: String },
    #[serde(rename = "cookie")]
    Cookie { name: String },
}