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
38
39
40
41
42
43
44
|
use crate::{
app::App,
clock::RequestedAt,
name::Name,
password::Password,
test::fixtures,
token::{
self,
extract::{Identity, IdentityCookie},
},
};
pub async fn create(app: &App, created_at: &RequestedAt) -> Identity {
let credentials = fixtures::user::create_with_password(app, created_at).await;
logged_in(app, &credentials, created_at).await
}
pub async fn from_cookie(
app: &App,
cookie: &IdentityCookie,
validated_at: &RequestedAt,
) -> Identity {
let secret = cookie.secret().expect("identity token has a secret");
app.tokens()
.validate(&secret, validated_at)
.await
.expect("always validates newly-issued secret")
}
pub async fn logged_in(
app: &App,
credentials: &(Name, Password),
issued_at: &RequestedAt,
) -> Identity {
let secret = fixtures::cookie::logged_in(app, credentials, issued_at).await;
from_cookie(app, &secret, issued_at).await
}
pub fn fictitious() -> Identity {
let token = token::Id::generate();
let user = fixtures::user::fictitious();
Identity { token, user }
}
|