ソースを参照

fix: app token's last_used_at can't be updated when last_used_at is null (#12770)

EricPan 3 ヶ月 前
コミット
05a0faff6a
1 ファイル変更5 行追加1 行削除
  1. 5 1
      api/controllers/service_api/wraps.py

+ 5 - 1
api/controllers/service_api/wraps.py

@@ -195,7 +195,11 @@ def validate_and_get_api_token(scope: str | None = None):
     with Session(db.engine, expire_on_commit=False) as session:
         update_stmt = (
             update(ApiToken)
-            .where(ApiToken.token == auth_token, ApiToken.last_used_at < cutoff_time, ApiToken.type == scope)
+            .where(
+                ApiToken.token == auth_token,
+                (ApiToken.last_used_at.is_(None) | (ApiToken.last_used_at < cutoff_time)),
+                ApiToken.type == scope,
+            )
             .values(last_used_at=current_time)
             .returning(ApiToken)
         )