1use jsonwebtoken::Algorithm;
2use serde::Deserialize;
3
4#[derive(Debug, Default, Deserialize)]
5pub struct Auth {
6 #[serde(default)]
7 pub guard: Guard,
8 #[serde(default)]
9 pub jwt: Jwt,
10}
11
12#[derive(Debug, Deserialize, Default)]
13pub enum Guard {
14 #[default]
15 #[serde(rename = "jwt")]
16 Jwt,
17}
18
19#[derive(Debug, Deserialize, Default)]
20pub struct Jwt {
21 pub secret: String,
22 pub expiration: u64,
23 #[serde(default)]
24 pub algorithm: Algorithm,
25 pub location: Option<JwtLocation>,
26}
27
28#[derive(Debug, Deserialize)]
29pub enum JwtLocation {
30 #[serde(rename = "bearer")]
31 Bearer,
32 #[serde(rename = "query")]
33 Query { name: String },
34 #[serde(rename = "cookie")]
35 Cookie { name: String },
36}