cloudflare/framework/
auth.rs1use reqwest::RequestBuilder;
2
3#[derive(Debug)]
4pub enum Credentials {
5 UserAuthKey { email: String, key: String },
6 UserAuthToken { token: String },
7 Service { key: String },
8}
9
10pub trait AuthClient {
11 fn auth(self, credentials: &Credentials) -> RequestBuilder;
12}
13
14impl AuthClient for RequestBuilder {
15 fn auth(self, credentials: &Credentials) -> RequestBuilder {
16 match credentials {
17 Credentials::UserAuthKey { email, key } => self
18 .header("X-Auth-Email", email.as_str())
19 .header("X-Auth-Key", key.clone()),
20 Credentials::UserAuthToken { token } => {
21 self.header("Authorization", &format!("Bearer {}", token.clone()))
22 }
23 Credentials::Service { key } => self.header("X-Auth-User-Service-Key", key.as_str()),
24 }
25 }
26}