KTVCentral/app/Http/Middleware/RoomApiTokenMiddleware.php
allen.yan d70da24a75 202509041808
加入RoomApiToken 驗証
加入通知顯示
2025-09-04 18:12:15 +08:00

34 lines
1.0 KiB
PHP

<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
use App\Models\RoomSession;
class RoomApiTokenMiddleware
{
/**
* Handle an incoming request.
*
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
*/
public function handle(Request $request, Closure $next): Response
{
// 優先從 query 拿,沒就 session
$roomCode = $request->query('room_code', session('room_code'));
if ($roomCode) {
$roomSession = RoomSession::validToken($roomCode)->first();
if (!$roomSession) {
session()->forget('room_code');
return redirect()->route('welcome')->with('error', '房間不存在或狀態不可用');
}else{
session(['room_code' => $roomCode]);
$request->merge(['roomSession' => $roomSession]); // 可選:直接注入 request
}
}
return $next($request);
}
}