cloudflare_but_works/framework/
auth.rs1#[derive(Clone, Debug)]
2pub enum Credentials {
3 UserAuthKey { email: String, key: String },
4 UserAuthToken { token: String },
5 Service { key: String },
6}
7
8impl Credentials {
9 pub fn headers(&self) -> Vec<(&'static str, String)> {
10 match self {
11 Self::UserAuthKey { email, key } => {
12 vec![("X-Auth-Email", email.clone()), ("X-Auth-Key", key.clone())]
13 }
14 Self::UserAuthToken { token } => {
15 vec![("Authorization", format!("Bearer {}", token.clone()))]
16 }
17 Self::Service { key } => vec![("X-Auth-User-Service-Key", key.clone())],
18 }
19 }
20}
21
22pub trait AuthClient {
23 fn auth(self, credentials: &Credentials) -> Self;
24}