登录接口 JWT 有效期调整为 7 天,sub 改为 user_id

This commit is contained in:
fish
2026-04-13 21:23:02 +08:00
parent 677a400392
commit e8580b9314
2 changed files with 14 additions and 14 deletions

View File

@@ -91,8 +91,8 @@ async fn login_handler(
info!("Login attempt for email: {}", payload.email);
// 查询用户邮箱与密码
let user: Option<(String,)> = sqlx::query_as(
"SELECT p.password \
let user: Option<(uuid::Uuid, String)> = sqlx::query_as(
"SELECT e.user_id, p.password \
FROM user_login_email e \
JOIN user_login_password p ON e.user_id = p.user_id \
WHERE e.email = $1 AND e.deleted = FALSE AND p.deleted = FALSE"
@@ -103,7 +103,7 @@ async fn login_handler(
.unwrap_or(None);
match user {
Some((password_hash,)) => {
Some((user_id, password_hash)) => {
// 验证密码
tracing::debug!("Verifying password: input_len={}, hash_len={}", payload.password.len(), password_hash.len());
match verify(&payload.password, &password_hash) {
@@ -111,7 +111,7 @@ async fn login_handler(
info!("Email {} logged in successfully", payload.email);
// 生成 JWT
let token = generate_token(&payload.email, &state.jwt_secret);
let token = generate_token(&user_id.to_string(), &state.jwt_secret);
(
StatusCode::OK,
@@ -166,12 +166,12 @@ async fn health_handler() -> &'static str {
}
// 生成 JWT Token
fn generate_token(email: &str, secret: &str) -> String {
fn generate_token(sub: &str, secret: &str) -> String {
let now = Utc::now();
let exp = now + Duration::hours(24);
let exp = now + Duration::days(7);
let claims = Claims {
sub: email.to_string(),
sub: sub.to_string(),
iat: now.timestamp() as usize,
exp: exp.timestamp() as usize,
};