summaryrefslogtreecommitdiff
path: root/server/src/main.rs
diff options
context:
space:
mode:
authorKjetil Orbekk <kj@orbekk.com>2022-10-08 10:30:15 -0400
committerKjetil Orbekk <kj@orbekk.com>2022-10-08 10:30:15 -0400
commit1cbf881835fc33859a31645f886c5d3787ed48f8 (patch)
treeeb7a8ac803e33283ea0efffa015c8bd96ca40c29 /server/src/main.rs
parentb727db0d64f4250742b0ebaac0149c1224a0d040 (diff)
Add access token validation
Diffstat (limited to 'server/src/main.rs')
-rw-r--r--server/src/main.rs13
1 files changed, 8 insertions, 5 deletions
diff --git a/server/src/main.rs b/server/src/main.rs
index e3a84d9..4183abb 100644
--- a/server/src/main.rs
+++ b/server/src/main.rs
@@ -2,9 +2,9 @@ use std::{collections::HashMap, env, sync::Arc};
use axum::{
extract::{Extension, Query},
- response::Redirect,
+ response::{Redirect, IntoResponse},
routing::get,
- Json, Router,
+ Json, Router, http::StatusCode,
};
use protocol::UserInfo;
use tower_cookies::{Cookie, CookieManagerLayer, Cookies};
@@ -12,8 +12,10 @@ use tower_http::trace::TraceLayer;
use tracing::info;
use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt};
mod auth;
+mod error;
use crate::auth::{Authenticator, EndUserId};
use sqlx::{postgres::PgPoolOptions, PgPool};
+use crate::error::BridgeError;
pub struct ServerContext {
pub app_url: String,
@@ -75,14 +77,14 @@ async fn login_callback(
cookies: Cookies,
Query(params): Query<HashMap<String, String>>,
extension: ContextExtension,
-) -> () {
+) -> Result<(), BridgeError> {
let cookie = cookies.get("user-id").unwrap();
let user_id: EndUserId =
serde_json::from_str(&urlencoding::decode(cookie.value()).unwrap()).unwrap();
info!("cookie: {cookie:?}");
info!("params: {params:?}");
- extension.authenticator.authenticate(user_id, params).await;
- ()
+ extension.authenticator.authenticate(user_id, params).await?;
+ Ok(())
}
async fn login(cookies: Cookies, extension: ContextExtension) -> Redirect {
@@ -95,3 +97,4 @@ async fn login(cookies: Cookies, extension: ContextExtension) -> Redirect {
));
Redirect::temporary(auth_url.as_str())
}
+