refactor: 重构飞书授权代码,提取公共工具类

1. 创建 app/util/HttpClient.php
   - 公共 HTTP 请求类
   - httpGet() 和 httpPost() 方法
   - 支持自定义 headers 和 timeout
   - 统一错误处理和日志

2. 创建 app/util/FeishuUtil.php
   - 飞书授权工具类,可被其他业务模块复用
   - getAppAccessToken() - 获取应用访问令牌(带缓存)
   - getUserAccessToken() - 获取用户访问令牌
   - getUserInfo() - 获取用户信息
   - getCompleteUserInfo() - 一步获取完整用户信息
   - clearTokenCache() - 清除 token 缓存

3. 重构 app/service/FeishuService.php
   - 使用新的工具类
   - 移除重复的 HTTP 请求方法
   - 保持向后兼容

飞书授权流程:
1. app_access_token (应用级令牌)
2. user_access_token (用户级令牌,需要 app_access_token)
3. 用户信息 (需要 user_access_token)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
root
2026-02-26 10:43:29 +08:00
parent b1d58ece61
commit 6899bad529
5 changed files with 398 additions and 145 deletions
+1 -1
View File
@@ -15,7 +15,7 @@ Route::group('/api/v1', function () {
})->middleware($apiMiddleware);
// 飞书登录回调(不在 /api/v1 下,供飞书重定向使用)
Route::get('/login/qrcode/{id}', [app\controller\AuthController::class, 'qrcodeLoginCallback'])->middleware($apiMiddleware);
Route::get('/login/callback', [app\controller\AuthController::class, 'qrcodeLoginCallback'])->middleware($apiMiddleware);
// 用户路由(需要认证)
Route::group('/api/v1/user', function () {