use crate::middlewares::token_store::DynTokenStore;
pub const AUTHORIZATION: &str = "Authorization";
pub const BEARER: &str = "Bearer";
pub const BASIC: &str = "Basic";
pub const TOKEN_KEY: &str = ":auth_user:";
pub const CACHE_USER_INFO: &str = ":userinfo:uid:";
pub const CACHE_AUTH_UID: &str = ":auth:uid:";
pub const CACHE_AUTH_TOKEN: &str = ":auth:token:";
pub const CACHE_AUTH_REFRESH_TOKEN: &str = ":auth:refresh_token:";
pub const CACHE_ADMIN_PERMS: &str = ":perms:admin:";
pub const CACHE_AUTH_FP_UID: &str = ":auth:fp:uid:";
pub const CACHE_AUTH_UID_FP: &str = ":auth:uid:fp:";
pub const CACHE_PERMS_RID: &str = ":perms:roleid:";
pub const CACHE_MENUS_RID: &str = ":menus:roleid:";
#[derive(Debug, serde::Serialize, serde::Deserialize)]
pub struct AuthTokenResult {
pub access_token: String,
pub expires_at: u64,
pub refresh_token: String,
pub refresh_expires_at: u64,
}
#[derive(Debug, serde::Serialize, serde::Deserialize, Clone)]
pub struct AuthModel {
pub uid: i64,
#[serde(default)]
pub mobile: String,
#[serde(default)]
pub nickname: String,
#[serde(default)]
pub username: String,
pub tid: i64,
#[serde(default)]
pub tname: String,
pub ouid: i64,
#[serde(default)]
pub ouname: String,
#[serde(default)]
pub rids: Vec<i64>,
#[serde(default)]
pub pmsids: Vec<i64>,
}
pub struct MiddlewareConfig {
pub token_store: DynTokenStore,
pub ignore_urls: Vec<String>,
pub pms_ignore_urls: Vec<String>,
pub prefix: String,
pub auth_basics: Vec<String>,
}