mycommon_utils/utils/
token_auth.rs1use std::collections::HashMap;
2use axum::extract::Request;
3use axum::http::request::Parts;
4use reqwest::header::HeaderMap;
5
6pub const TOKEN_PREFIX: &'static str = "Bearer ";
7
8pub fn get_token(header_map: &HeaderMap) -> String {
9 let mut token = header_map
10 .get("authorization")
11 .map(|v| v.to_str().unwrap_or_default().to_string())
12 .unwrap_or_default();
13 if token.starts_with(TOKEN_PREFIX) {
14 token = token.replace(TOKEN_PREFIX, "");
15 }
16 token
17}
18
19
20pub fn get_token_by_header_map (header_map: &HeaderMap) -> String {
21 let token = header_map
22 .get("Access-Token")
23 .map(|v| v.to_str().unwrap_or_default().to_string())
24 .unwrap_or_default();
25 token
26}
27
28pub fn get_access_token_by_parts<B>(parts: &mut Parts) -> String {
30 let mut jwt_token = "".to_string();
31 if let Some(t) = parts.headers.get("Access-Token") {
33 jwt_token = t.to_str().unwrap_or(&String::from("")).trim().to_string();
34 }
35 jwt_token
36}
37
38pub fn get_access_token_by_request<B>(request: &Request<B>) -> String {
39 let mut jwt_token = "".to_string();
40 if let Some(t) = request.headers().get("Access-Token") {
42 jwt_token = t.to_str().unwrap_or(&String::from("")).trim().to_string();
43 }
44 jwt_token
45}
46
47pub fn get_query_params_token<B>(request: &Request<B>) -> String {
49 let query = request.uri().query().unwrap_or("");
51 let params: HashMap<String, String> = form_urlencoded::parse(query.as_bytes())
53 .into_owned()
54 .collect::<HashMap<_, _>>();
55 params.get("token").cloned().unwrap_or_default()
57}
58
59