diff options
author | Kjetil Orbekk <kj@orbekk.com> | 2022-10-08 10:30:15 -0400 |
---|---|---|
committer | Kjetil Orbekk <kj@orbekk.com> | 2022-10-08 10:30:15 -0400 |
commit | 1cbf881835fc33859a31645f886c5d3787ed48f8 (patch) | |
tree | eb7a8ac803e33283ea0efffa015c8bd96ca40c29 /server/src/main.rs | |
parent | b727db0d64f4250742b0ebaac0149c1224a0d040 (diff) |
Add access token validation
Diffstat (limited to 'server/src/main.rs')
-rw-r--r-- | server/src/main.rs | 13 |
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()) } + |