diff --git a/gpt_be/schemas/recommendation.py b/gpt_be/schemas/recommendation.py index 20476ea..a411351 100644 --- a/gpt_be/schemas/recommendation.py +++ b/gpt_be/schemas/recommendation.py @@ -26,7 +26,6 @@ class GptAssistanceRequest(BaseModel): questionId: int content: str answer: str - explanation: str subjectName: str class GptAssistanceResponse(BaseModel): diff --git a/gpt_be/utils/perplexity_client.py b/gpt_be/utils/perplexity_client.py index 66556c6..8927fec 100644 --- a/gpt_be/utils/perplexity_client.py +++ b/gpt_be/utils/perplexity_client.py @@ -65,7 +65,8 @@ def generate_explanation(self, question: str, answer: str, subject: str) -> str: ], model="sonar", # Perplexity API에서 지원하는 모델 max_tokens=150, # 100자 정도면 충분 - temperature=0.5 # 더 결정적인 응답을 위해 낮춤 + temperature=0.5, # 더 결정적인 응답을 위해 낮춤 + timeout=30 # 30초 타임아웃 설정 ) # 응답 처리 diff --git a/users-service/src/main/java/com/example/usersservice/controller/UserController.java b/users-service/src/main/java/com/example/usersservice/controller/UserController.java index 5c6862a..51ddbea 100644 --- a/users-service/src/main/java/com/example/usersservice/controller/UserController.java +++ b/users-service/src/main/java/com/example/usersservice/controller/UserController.java @@ -78,6 +78,10 @@ public ResponseEntity logout(@AuthenticationPrincipal UserDetailsImpl user) { )); } } + @GetMapping("/token") + public ResponseEntity checkToken(@AuthenticationPrincipal UserDetailsImpl userDetails) { + return ResponseEntity.ok().build(); + } @DeleteMapping("/user") public ResponseEntity deleteAccount(@AuthenticationPrincipal UserDetailsImpl user) { diff --git a/users-service/src/main/java/com/example/usersservice/utils/jwt/JwtUtils.java b/users-service/src/main/java/com/example/usersservice/utils/jwt/JwtUtils.java index 4b8ec95..0c00a50 100644 --- a/users-service/src/main/java/com/example/usersservice/utils/jwt/JwtUtils.java +++ b/users-service/src/main/java/com/example/usersservice/utils/jwt/JwtUtils.java @@ -133,12 +133,12 @@ public boolean isRefreshTokenValid(String username, String token) { log.warn("Refresh token not found in Redis or doesn't match"); return false; } - + String actualToken = token.startsWith(BEARER_PREFIX) ? token.substring(BEARER_PREFIX.length()) : token; // 2. 토큰 자체 검증 Claims claims = Jwts.parserBuilder() .setSigningKey(secretKey) .build() - .parseClaimsJws(token) + .parseClaimsJws(actualToken) .getBody(); // 3. 토큰 유형 검증