From a3875f011017fcc0371b292dd0de477a9088f9de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E8=BF=90=E5=AE=B6?= Date: Thu, 30 May 2024 16:53:20 +0800 Subject: [PATCH] =?UTF-8?q?token=E4=B8=AD=E9=97=B4=E4=BB=B6=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- library/src/middleware/req_token.rs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/library/src/middleware/req_token.rs b/library/src/middleware/req_token.rs index c0031c5..9bcbc50 100644 --- a/library/src/middleware/req_token.rs +++ b/library/src/middleware/req_token.rs @@ -21,14 +21,16 @@ pub async fn authenticate_access_token(mut req: Request, next: Next) -> Response let validation = Validation::default(); match decode::(token, &DecodingKey::from_secret(config!().jwt.token_secret.as_bytes()), &validation) { Ok(decoded) => { + // 从缓存中获取当前用户信息 let account = LOGIN_CACHE.get(&decoded.claims.sub).await; if account.is_none() { return (StatusCode::UNAUTHORIZED, "Invalid token".to_string()).into_response(); } - let account = account.unwrap(); - if account.token != token { - return (StatusCode::UNAUTHORIZED, "Invalid token".to_string()).into_response(); - } + // 判断token是否有效(注释掉,如果服务因为升级等原因手动重启了,缓存的数据也不再存在) + // let account = account.unwrap(); + // if account.token != token { + // return (StatusCode::UNAUTHORIZED, "Invalid token".to_string()).into_response(); + // } // 将Claims附加到请求扩展中,以便后续处理使用 req.extensions_mut().insert(account); next.run(req).await