mirror of
https://github.com/storytold/artcraft.git
synced 2026-11-08 02:52:12 +00:00
correct cache key
This commit is contained in:
1 parent
8079be9f7e
commit
e5cdb84c52
3 files changed
+20
-8
No files matched your search
@@ -12,4 +12,8 @@ impl RedisCacheKeys {
|
||||
pub fn session_record_light(session_token: &str) -> String {
|
||||
format!("ses_light:{}", session_token)
|
||||
}
|
||||
|
||||
pub fn session_record_user(session_token: &str) -> String {
|
||||
format!("ses_user:{}", session_token)
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
// NB: Incrementally getting rid of build warnings...
|
||||
//#![forbid(unused_imports)]
|
||||
//#![forbid(unused_mut)]
|
||||
//#![forbid(unused_variables)]
|
||||
#![forbid(unused_imports)]
|
||||
#![forbid(unused_mut)]
|
||||
#![forbid(unused_variables)]
|
||||
|
||||
use actix_web::HttpRequest;
|
||||
use container_common::anyhow_result::AnyhowResult;
|
||||
@@ -14,8 +14,7 @@ use log::warn;
|
||||
use redis_caching::redis_ttl_cache::{RedisTtlCache, RedisTtlCacheConnection};
|
||||
use redis_common::redis_cache_keys::RedisCacheKeys;
|
||||
use sqlx::pool::PoolConnection;
|
||||
use sqlx::{MySqlPool, MySql, Acquire, Executor};
|
||||
use sqlx_mysql_helpers::any_connection::MySqlHandleMixedRef;
|
||||
use sqlx::{MySqlPool, MySql, Executor};
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct SessionChecker {
|
||||
@@ -42,7 +41,7 @@ impl SessionChecker {
|
||||
|
||||
// ==================== SessionRecord ====================
|
||||
|
||||
#[deprecated = "Use the PoolConnection<MySql> method instead of the MySqlPool one."]
|
||||
//#[deprecated = "Use the PoolConnection<MySql> method instead of the MySqlPool one."]
|
||||
pub async fn maybe_get_session_light(
|
||||
&self,
|
||||
request: &HttpRequest,
|
||||
@@ -52,6 +51,7 @@ impl SessionChecker {
|
||||
self.do_session_light_lookup_and_cookie_decode(request, pool).await
|
||||
}
|
||||
|
||||
|
||||
pub async fn maybe_get_session_light_from_connection(
|
||||
&self,
|
||||
request: &HttpRequest,
|
||||
@@ -61,6 +61,7 @@ impl SessionChecker {
|
||||
self.do_session_light_lookup_and_cookie_decode(request, mysql_connection).await
|
||||
}
|
||||
|
||||
|
||||
async fn do_session_light_lookup_and_cookie_decode<'e, 'c : 'e, E>(
|
||||
&self,
|
||||
request: &HttpRequest,
|
||||
@@ -76,6 +77,7 @@ impl SessionChecker {
|
||||
self.do_session_light_lookup(mysql_executor, &session_token).await
|
||||
}
|
||||
|
||||
|
||||
async fn do_session_light_lookup<'e, 'c : 'e, E>(
|
||||
&self,
|
||||
mysql_executor: E,
|
||||
@@ -109,6 +111,7 @@ impl SessionChecker {
|
||||
self.do_user_session_lookup_and_cookie_decode(request, pool).await
|
||||
}
|
||||
|
||||
|
||||
pub async fn maybe_get_user_session_from_connection(
|
||||
&self,
|
||||
request: &HttpRequest,
|
||||
@@ -118,6 +121,7 @@ impl SessionChecker {
|
||||
self.do_user_session_lookup_and_cookie_decode(request, mysql_connection).await
|
||||
}
|
||||
|
||||
|
||||
async fn do_user_session_lookup_and_cookie_decode<'e, 'c : 'e, E>(
|
||||
&self,
|
||||
request: &HttpRequest,
|
||||
@@ -133,6 +137,7 @@ impl SessionChecker {
|
||||
self.do_user_session_lookup(mysql_executor, &session_token).await
|
||||
}
|
||||
|
||||
|
||||
async fn do_user_session_lookup<'e, 'c : 'e, E>(
|
||||
&self,
|
||||
mysql_executor: E,
|
||||
@@ -145,7 +150,7 @@ impl SessionChecker {
|
||||
get_user_session_by_token(mysql_executor, session_token).await
|
||||
}
|
||||
Some(mut redis_ttl_cache) => {
|
||||
let cache_key = RedisCacheKeys::session_record_light(session_token);
|
||||
let cache_key = RedisCacheKeys::session_record_user(session_token);
|
||||
redis_ttl_cache.lazy_load_if_not_cached(&cache_key, move || {
|
||||
get_user_session_by_token(mysql_executor, session_token)
|
||||
}).await
|
||||
|
||||
@@ -233,7 +233,10 @@ async fn main() -> AnyhowResult<()> {
|
||||
easyenv::get_env_string_or_default("WEBSITE_HOMEPAGE_REDIRECT", "https://vo.codes/");
|
||||
|
||||
let cookie_manager = SessionCookieManager::new(&cookie_domain, &hmac_secret);
|
||||
let session_checker = SessionChecker::new(&cookie_manager);
|
||||
let session_checker = SessionChecker::new_with_cache(
|
||||
&cookie_manager,
|
||||
redis_ttl_cache.clone(),
|
||||
);
|
||||
|
||||
let access_key = easyenv::get_env_string_required(ENV_ACCESS_KEY)?;
|
||||
let secret_key = easyenv::get_env_string_required(ENV_SECRET_KEY)?;
|
||||
|
||||
Reference in new issue
Block a user