1use std::env;
2
3use serde::{Deserialize, Serialize};
4
5use crate::uri::IgnoreUri;
6
7#[derive(Debug, Serialize, Deserialize, Clone)]
9pub struct JwtConfig {
10 pub secret: String,
11 pub expiration_hours: i64,
12 pub ignore_uris: Option<Vec<IgnoreUri>>,
13}
14
15impl JwtConfig {
16 pub fn new(secret: String, expiration_hours: i64, ignore_uris: Option<Vec<IgnoreUri>>) -> Self {
17 Self {
18 secret,
19 expiration_hours,
20 ignore_uris,
21 }
22 }
23}
24
25impl Default for JwtConfig {
26 fn default() -> Self {
27 let secret =
28 env::var("JWT_SECRET").unwrap_or_else(|_| "cloud-think-space-secret".to_string());
29 Self {
30 secret,
31 expiration_hours: 24,
32 ignore_uris: None,
33 }
34 }
35}