From eae3e9c09f14712c92916e9ae1818a7b38d2834b Mon Sep 17 00:00:00 2001 From: "HESU\\HESU" <1696136552@qq.com> Date: Sat, 22 Mar 2025 15:31:54 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controller/FeishuController.php | 2 +- app/controller/UserController.php | 2 ++ app/middleware/CrossDomain.php | 40 ++++++++++++++++++++--------- 3 files changed, 31 insertions(+), 13 deletions(-) diff --git a/app/controller/FeishuController.php b/app/controller/FeishuController.php index 47fc2d1..5ded1ef 100644 --- a/app/controller/FeishuController.php +++ b/app/controller/FeishuController.php @@ -53,7 +53,7 @@ class FeishuController $res = []; foreach ($certificate as $k => $v) { - $res []=$k; + $res []=['id'=>$k,'name'=>$k]; } return Util::success($res,trans('success')); } diff --git a/app/controller/UserController.php b/app/controller/UserController.php index 0941ef7..453fec4 100644 --- a/app/controller/UserController.php +++ b/app/controller/UserController.php @@ -2,6 +2,7 @@ namespace app\controller; +use app\model\Country; use app\model\FeishuUser; use app\model\User; use app\service\MailService; @@ -178,6 +179,7 @@ class UserController $user->toArray(); unset($user->password); $user['feishu_openid'] = FeishuUser::where('user_id', $userId)->value('open_id'); + $user['country_name'] = Country::where('id', $user['country_id'])->value('open_id'); return Util::success($user, trans('save_success')); } diff --git a/app/middleware/CrossDomain.php b/app/middleware/CrossDomain.php index bb96bb5..f13101e 100644 --- a/app/middleware/CrossDomain.php +++ b/app/middleware/CrossDomain.php @@ -7,20 +7,36 @@ use Webman\MiddlewareInterface; class CrossDomain implements MiddlewareInterface { - public function process(Request $request, callable $next): Response - { - // 动态允许请求来源(支持携带Cookie) - $origin = $request->header('origin', '*'); - $response = $next($request); +// public function process(Request $request, callable $next): Response +// { +// // 动态允许请求来源(支持携带Cookie) +// $origin = $request->header('origin', '*'); +// $response = $next($request); +// +// // 设置跨域响应头 +// $response->withHeaders([ +// 'Access-Control-Allow-Origin' => $origin, +// 'Access-Control-Allow-Methods' => 'GET, POST, PUT, DELETE, OPTIONS', +// 'Access-Control-Allow-Headers' => 'Content-Type, Authorization, X-Requested-With', +// 'Access-Control-Allow-Credentials' => 'true', // 允许携带Cookie +// 'Access-Control-Max-Age' => 86400, // 预检请求缓存时间(秒) +// 'Vary' => 'Origin' // 避免缓存干扰 +// ]); +// +// return $response; +// } - // 设置跨域响应头 + public function process(Request $request, callable $handler) : Response + { + // 如果是options请求则返回一个空响应,否则继续向洋葱芯穿越,并得到一个响应 + $response = $request->method() == 'OPTIONS' ? response('') : $handler($request); + + // 给响应添加跨域相关的http头 $response->withHeaders([ - 'Access-Control-Allow-Origin' => $origin, - 'Access-Control-Allow-Methods' => 'GET, POST, PUT, DELETE, OPTIONS', - 'Access-Control-Allow-Headers' => 'Content-Type, Authorization, X-Requested-With', - 'Access-Control-Allow-Credentials' => 'true', // 允许携带Cookie - 'Access-Control-Max-Age' => 86400, // 预检请求缓存时间(秒) - 'Vary' => 'Origin' // 避免缓存干扰 + 'Access-Control-Allow-Credentials' => 'true', + 'Access-Control-Allow-Origin' => $request->header('origin', '*'), + 'Access-Control-Allow-Methods' => $request->header('access-control-request-method', '*'), + 'Access-Control-Allow-Headers' => $request->header('access-control-request-headers', '*'), ]); return $response;