summaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/main.rs b/src/main.rs
index 183dca2..1106dc0 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,3 +1,5 @@
+use std::time::Duration;
+
use actix_web::http::header::{self, HeaderValue};
use actix_web::middleware::{ErrorHandlerResponse, ErrorHandlers, Logger, NormalizePath};
use actix_web::web::Data;
@@ -13,6 +15,7 @@ mod services;
use resources::*;
use services::*;
+use sqlx::MySqlPool;
fn error_content_language<B>(
mut res: dev::ServiceResponse,
@@ -24,6 +27,23 @@ fn error_content_language<B>(
Ok(ErrorHandlerResponse::Response(res.map_into_right_body()))
}
+async fn delete_expired_tokens(db: MySqlPool) {
+ let db = db.clone();
+ let mut interval = actix_rt::time::interval(Duration::from_secs(60 * 10));
+ loop {
+ interval.tick().await;
+ if let Err(e) = db::delete_expired_auth_codes(&db).await {
+ log::error!("{}", e);
+ }
+ if let Err(e) = db::delete_expired_access_tokens(&db).await {
+ log::error!("{}", e);
+ }
+ if let Err(e) = db::delete_expired_refresh_tokens(&db).await {
+ log::error!("{}", e);
+ }
+ }
+}
+
#[actix_web::main]
async fn main() -> Result<(), RawUnexpected> {
// load the environment file, but only in debug mode
@@ -38,6 +58,8 @@ async fn main() -> Result<(), RawUnexpected> {
let translations = languages::initialize()?;
+ actix_rt::spawn(delete_expired_tokens(sql_pool.clone()));
+
// start the server
HttpServer::new(move || {
App::new()