update readme

Signed-off-by: Erik Hollensbe <linux@hollensbe.org>
This commit is contained in:
Erik Hollensbe
2022-01-24 12:25:19 -08:00
parent 8f11428185
commit 69c5d2d1dd
+22 -24
View File
@@ -49,22 +49,12 @@ async fn validate_authtoken(
app: App<State, AuthedState>,
mut authstate: AuthedState,
) -> HTTPResult<AuthedState> {
let token = req.headers().get("X-AuthToken");
if token.is_none() {
return Err(Error::StatusCode(StatusCode::UNAUTHORIZED));
if let (Some(token), Some(state)) = (req.headers().get("X-AuthToken"), app.state().await) {
authstate.authed = Some(state.clone().lock().await.authtoken == token);
Ok((req, resp, authstate))
} else {
Err(Error::StatusCode(StatusCode::UNAUTHORIZED))
}
let token = token.unwrap();
let state = app.state().await;
if state.is_none() {
return Err(Error::StatusCode(StatusCode::UNAUTHORIZED));
}
let state = state.unwrap();
authstate.authed = Some(state.clone().lock().await.authtoken == token);
return Ok((req, resp, authstate));
}
// our `hello` responder; it simply echoes the `name` parameter provided in the
@@ -76,18 +66,26 @@ async fn hello(
_app: App<State, AuthedState>,
authstate: AuthedState,
) -> HTTPResult<AuthedState> {
if authstate.authed.is_some() && !authstate.authed.unwrap() {
return Err(Error::StatusCode(StatusCode::UNAUTHORIZED));
}
let name = params.get("name").unwrap();
let bytes = Body::from(format!("hello, {}!\n", name));
return Ok((
req,
Some(Response::builder().status(200).body(bytes).unwrap()),
authstate,
));
if let Some(authed) = authstate.authed {
if authed {
return Ok((
req,
Some(Response::builder().status(200).body(bytes).unwrap()),
authstate,
));
}
} else if authstate.authed.is_none() {
return Ok((
req,
Some(Response::builder().status(200).body(bytes).unwrap()),
authstate,
));
}
Err(Error::StatusCode(StatusCode::UNAUTHORIZED))
}
// Our global application state; must be `Clone`.