|
|
@ -222,13 +222,12 @@ use crate::db::{ |
|
|
|
DbConn, |
|
|
|
}; |
|
|
|
|
|
|
|
pub struct Headers { |
|
|
|
pub host: String, |
|
|
|
pub device: Device, |
|
|
|
pub user: User, |
|
|
|
pub struct Host { |
|
|
|
pub host: String |
|
|
|
} |
|
|
|
|
|
|
|
impl<'a, 'r> FromRequest<'a, 'r> for Headers { |
|
|
|
|
|
|
|
impl<'a, 'r> FromRequest<'a, 'r> for Host { |
|
|
|
type Error = &'static str; |
|
|
|
|
|
|
|
fn from_request(request: &'a Request<'r>) -> Outcome<Self, Self::Error> { |
|
|
@ -262,6 +261,28 @@ impl<'a, 'r> FromRequest<'a, 'r> for Headers { |
|
|
|
format!("{}://{}", protocol, host) |
|
|
|
}; |
|
|
|
|
|
|
|
Outcome::Success(Host { host }) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
pub struct Headers { |
|
|
|
pub host: String, |
|
|
|
pub device: Device, |
|
|
|
pub user: User, |
|
|
|
} |
|
|
|
|
|
|
|
impl<'a, 'r> FromRequest<'a, 'r> for Headers { |
|
|
|
type Error = &'static str; |
|
|
|
|
|
|
|
fn from_request(request: &'a Request<'r>) -> Outcome<Self, Self::Error> { |
|
|
|
let headers = request.headers(); |
|
|
|
|
|
|
|
let host = match Host::from_request(request) { |
|
|
|
Outcome::Forward(_) => return Outcome::Forward(()), |
|
|
|
Outcome::Failure(f) => return Outcome::Failure(f), |
|
|
|
Outcome::Success(host) => host.host, |
|
|
|
}; |
|
|
|
|
|
|
|
// Get access_token
|
|
|
|
let access_token: &str = match headers.get_one("Authorization") { |
|
|
|
Some(a) => match a.rsplit("Bearer ").next() { |
|
|
|