1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
pub mod app;
mod broadcaster;
mod event;
pub mod extract;
mod id;
pub mod repo;
mod secret;
use uuid::Uuid;
pub use self::{broadcaster::Broadcaster, event::Event, id::Id, secret::Secret};
use crate::{clock::DateTime, login, login::Login};
#[derive(Clone, Debug)]
pub struct Token {
pub id: Id,
pub login: login::Id,
pub issued_at: DateTime,
pub last_used_at: DateTime,
}
impl Token {
pub fn generate(login: &Login, issued_at: &DateTime) -> (Self, Secret) {
let id = Id::generate();
let secret = Uuid::new_v4().to_string().into();
(
Self {
id,
login: login.id.clone(),
issued_at: *issued_at,
last_used_at: *issued_at,
},
secret,
)
}
}
|