rsiot/components/cmp_auth/
config.rs

1use crate::message::*;
2
3/// Конфигурация
4#[derive(Clone)]
5pub struct Config {
6    /// Секретный ключ для валидации токенов
7    pub secret_key: String,
8
9    /// Хранилище данных доступа
10    ///
11    /// **Примеры**
12    ///
13    /// ```rust
14    #[doc = include_str!("./test/config_store.rs")]
15    /// ```
16    pub store: ConfigStore,
17}
18
19impl Default for Config {
20    fn default() -> Self {
21        Self {
22            secret_key: Default::default(),
23            store: ConfigStore::Local(vec![]),
24        }
25    }
26}
27
28/// Тип хранилища данных доступа
29#[derive(Clone)]
30pub enum ConfigStore {
31    /// Локальное сохранение - в коде
32    Local(Vec<ConfigStoreLocalItem>),
33
34    /// В базе данных SurrealDB
35    Surrealdb,
36}
37
38/// Запись данных авторизации для одного пользователя
39#[derive(Clone)]
40pub struct ConfigStoreLocalItem {
41    /// Логин
42    pub login: String,
43
44    /// Пароль
45    pub password: String,
46
47    /// Роль
48    pub role: AuthPermissions,
49}