使用ResErr封装request context中间件错误信息
This commit is contained in:
parent
0d8802b495
commit
468bf8578f
@ -3,7 +3,7 @@ use http::{header, StatusCode};
|
||||
use i18n::{message, message_ids::MessageId};
|
||||
use jsonwebtoken::{decode, DecodingKey, Validation};
|
||||
|
||||
use crate::{cache::account_cache::LOGIN_CACHE, config, context::{Context, WhiteContext}, token::Claims};
|
||||
use crate::{cache::account_cache::LOGIN_CACHE, config, context::{Context, WhiteContext}, model::response::ResErr, token::Claims};
|
||||
|
||||
const WHITE_LIST: &[(&str, &str)] = &[
|
||||
("POST", "/account/sys"),
|
||||
@ -43,13 +43,13 @@ pub async fn authenticate_ctx(mut req: Request, next: Next) -> Response {
|
||||
let parts: Vec<&str> = header_value.to_str().unwrap_or("").split_whitespace().collect();
|
||||
if parts.len() != 2 || parts[0] != "Bearer" {
|
||||
tracing::error!("无效的 authorization 请求头参数");
|
||||
return (StatusCode::BAD_REQUEST, message!(&language, MessageId::BadRequest)).into_response();
|
||||
return ResErr::params(message!(&language, MessageId::BadRequest)).into_response();
|
||||
}
|
||||
parts[1]
|
||||
},
|
||||
None => {
|
||||
tracing::error!("缺少 authorization 请求头参数");
|
||||
return (StatusCode::UNAUTHORIZED, message!(&language, MessageId::BadRequest)).into_response()
|
||||
return ResErr::auth(message!(&language, MessageId::BadRequest)).into_response()
|
||||
},
|
||||
};
|
||||
|
||||
@ -60,7 +60,7 @@ pub async fn authenticate_ctx(mut req: Request, next: Next) -> Response {
|
||||
let account = LOGIN_CACHE.get(&decoded.claims.sub).await;
|
||||
if account.is_none() {
|
||||
tracing::error!("无效的 token");
|
||||
return (StatusCode::UNAUTHORIZED, message!(&language, MessageId::BadRequest)).into_response();
|
||||
return ResErr::auth(message!(&language, MessageId::BadRequest)).into_response();
|
||||
}
|
||||
let account = account.unwrap();
|
||||
// 判断token是否有效(注释掉,如果服务因为升级等原因手动重启了,缓存的数据也不再存在)
|
||||
@ -78,7 +78,7 @@ pub async fn authenticate_ctx(mut req: Request, next: Next) -> Response {
|
||||
},
|
||||
Err(_) => {
|
||||
tracing::error!("无效的 token");
|
||||
return (StatusCode::UNAUTHORIZED, message!(&language, MessageId::BadRequest)).into_response();
|
||||
return ResErr::auth(message!(&language, MessageId::BadRequest)).into_response();
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user