validate-claims-fix
This commit is contained in:
parent
7e0e1d60f4
commit
3958ae1062
36
src/data.rs
36
src/data.rs
|
@ -9,45 +9,35 @@ use crate::SSEMessageData;
|
||||||
|
|
||||||
pub async fn get_auth_id(token: &str) -> Result<i32, Box<dyn Error>> {
|
pub async fn get_auth_id(token: &str) -> Result<i32, Box<dyn Error>> {
|
||||||
let auth_api_base = env::var("AUTH_URL")?;
|
let auth_api_base = env::var("AUTH_URL")?;
|
||||||
|
let query_name = "validate_jwt_token";
|
||||||
|
let operation = "ValidateToken";
|
||||||
let mut headers = HeaderMap::new();
|
let mut headers = HeaderMap::new();
|
||||||
|
// headers.insert(AUTHORIZATION, HeaderValue::from_str(token)?);
|
||||||
headers.insert(CONTENT_TYPE, HeaderValue::from_static("application/json"));
|
headers.insert(CONTENT_TYPE, HeaderValue::from_static("application/json"));
|
||||||
|
|
||||||
|
let mut variables = HashMap::<String, String>::new();
|
||||||
|
variables.insert("token".to_string(), token.to_string());
|
||||||
|
variables.insert("token_type".to_string(), "access_token".to_string());
|
||||||
|
|
||||||
let gql = json!({
|
let gql = json!({
|
||||||
"query": r#"query {
|
"query": format!("query {}($params: ValidateJWTTokenInput) {{ {}(params: $params) {{ is_valid claims }} }}", operation, query_name),
|
||||||
validate_jwt_token(params: ValidateJWTTokenInput) {
|
"operationName": operation,
|
||||||
is_valid
|
"variables": variables
|
||||||
claims
|
|
||||||
}
|
|
||||||
}"#,
|
|
||||||
"variables": {
|
|
||||||
"params": {
|
|
||||||
"token_type": "access_token",
|
|
||||||
"token": token,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
println!("GraphQL Request: {:?}", gql);
|
|
||||||
let client = HTTPClient::new();
|
let client = HTTPClient::new();
|
||||||
let response = client
|
let response = client
|
||||||
.post(&auth_api_base)
|
.post(&auth_api_base)
|
||||||
.headers(headers)
|
.headers(headers)
|
||||||
.json(&gql)
|
.json(&gql)
|
||||||
.send()
|
.send()
|
||||||
.await;
|
.await?;
|
||||||
|
|
||||||
let response = match response {
|
|
||||||
Ok(res) => res,
|
|
||||||
Err(err) => {
|
|
||||||
println!("Error sending request: {:?}", err);
|
|
||||||
return Err(Box::new(err));
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
if response.status().is_success() {
|
if response.status().is_success() {
|
||||||
let r: HashMap<String, serde_json::Value> = response.json().await?;
|
let r: HashMap<String, serde_json::Value> = response.json().await?;
|
||||||
let user_id = r
|
let user_id = r
|
||||||
.get("data")
|
.get("data")
|
||||||
.and_then(|data| data.get("validate_jwt_token"))
|
.and_then(|data| data.get(query_name))
|
||||||
.and_then(|query| query.get("claims"))
|
.and_then(|query| query.get("claims"))
|
||||||
.and_then(|claims| claims.get("sub"))
|
.and_then(|claims| claims.get("sub"))
|
||||||
.and_then(|id| id.as_i64());
|
.and_then(|id| id.as_i64());
|
||||||
|
|
Loading…
Reference in New Issue
Block a user