Setting payload for jwt with http:set_json_body
- Removed visual clutter extracting uid from user params
This commit is contained in:
		
							parent
							
								
									e21c5c7624
								
							
						
					
					
						commit
						5737f9824d
					
				@ -191,15 +191,19 @@ pub async fn wall_entry<'path, 'pool, 'params>(
 | 
			
		||||
    return AuthReason::NoKey;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
pub async fn login_get_jwt(p: &Pool, response: &mut hyper::Response<hyper::Body>, params: serde_json::Value) {
 | 
			
		||||
    // basically this route generates a jwt for the user and returns via the jwt key
 | 
			
		||||
    // in the json response
 | 
			
		||||
pub async fn login_get_jwt(p: &Pool, response: &mut hyper::Response<hyper::Body>, params: HashMap<&str, &str>) {
 | 
			
		||||
    // Login data has already been validated at this point
 | 
			
		||||
    // Required data such as 'id' and 'secret' are there and validated
 | 
			
		||||
    use jsonwebtoken::{
 | 
			
		||||
        Header, Algorithm, 
 | 
			
		||||
        encode
 | 
			
		||||
    };
 | 
			
		||||
    use hyper::header::HeaderValue;
 | 
			
		||||
    let id = params.get("id").unwrap().as_u64().unwrap(); // only route where we have the "id is there guarantee"
 | 
			
		||||
    use crate::http::{self, extract_uid};
 | 
			
		||||
 | 
			
		||||
    let id = extract_uid(¶ms); // only route where we have the "id is there guarantee"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    let claim = Claim::new(id);
 | 
			
		||||
    let header = Header::new(Algorithm::HS512);
 | 
			
		||||
    let encoded = encode(
 | 
			
		||||
@ -212,10 +216,7 @@ pub async fn login_get_jwt(p: &Pool, response: &mut hyper::Response<hyper::Body>
 | 
			
		||||
            response.headers_mut().insert("Content-Type",
 | 
			
		||||
            HeaderValue::from_static("application/json"));
 | 
			
		||||
 | 
			
		||||
            let payload = serde_json::json!({
 | 
			
		||||
                "jwt": encoded
 | 
			
		||||
            });
 | 
			
		||||
            *response.body_mut() = hyper::Body::from(payload.to_string());
 | 
			
		||||
            http::set_json_body(response, serde_json::json!({"jwt": encoded}));
 | 
			
		||||
        },
 | 
			
		||||
        Err(e) => {
 | 
			
		||||
            eprintln!("{}", e);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user