1.修改发送AI信息token没有正确的问题

This commit is contained in:
2025-08-22 15:00:49 +08:00
parent fc6ed00a3e
commit e221e66dfb
2 changed files with 17 additions and 11 deletions

View File

@@ -9,6 +9,8 @@ import com.srs.common.core.controller.BaseController;
// OkHttp 显式导入
import com.srs.common.exception.ServiceException;
import com.srs.common.utils.SecurityUtils;
import com.srs.common.utils.ServletUtils;
import com.srs.framework.web.service.TokenService;
import com.srs.teacher.domain.dto.ConversationDTO;
import com.srs.web.core.config.DifyConfig;
import okhttp3.*;
@@ -42,7 +44,8 @@ import java.util.concurrent.CompletableFuture;
@RestController
@RequestMapping("/aitutor/aichat")
public class AiChatController extends BaseController {
@Autowired
private TokenService tokenService;
/**
* HTTP客户端实例
* 配置了5分钟的读取超时时间用于与Dify API进行通信
@@ -117,7 +120,9 @@ public class AiChatController extends BaseController {
// 在主线程中获取当前用户名,避免在异步线程中获取安全上下文
String currentUsername = SecurityUtils.getLoginUser().getUsername();
String currentUserToken = SecurityUtils.getLoginUser().getToken();
// 获取JWT token
String currentUserToken = tokenService.getToken(ServletUtils.getRequest());
// String currentUserToken = SecurityUtils.getLoginUser().getToken();
// 异步执行请求处理,避免阻塞主线程
CompletableFuture.runAsync(() -> {
try {
@@ -147,7 +152,8 @@ public class AiChatController extends BaseController {
* @param currentUsername
* @throws IOException 当网络请求或IO操作失败时抛出
*/
private void sendToDifyAndStream(Map<String, Object> requestData, SseEmitter emitter, String currentUsername,String currentUserToken)
private void sendToDifyAndStream(Map<String, Object> requestData, SseEmitter emitter, String currentUsername,
String currentUserToken)
throws IOException {
// 构建请求体参数
@@ -184,7 +190,7 @@ public class AiChatController extends BaseController {
inputs.put("user_name", userName);
}
//Object userToken = requestData.get("user_token");
// Object userToken = requestData.get("user_token");
if (currentUserToken != null) {
inputs.put("user_token", currentUserToken);
}

View File

@@ -209,7 +209,7 @@ public class TokenService
* @param request
* @return token
*/
private String getToken(HttpServletRequest request)
public String getToken(HttpServletRequest request)
{
String token = request.getHeader(header);
if (StringUtils.isNotEmpty(token) && token.startsWith(Constants.TOKEN_PREFIX))