Skip to main content

server_config/
jwt.rs

1use std::env;
2
3use serde::{Deserialize, Serialize};
4
5use crate::uri::IgnoreUri;
6
7// JWT 配置结构
8#[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}