feat:實作 Member Portal MVP 前端與後端整合

後端:
- 新增 DivingOffer Model / DivingOfferController(列表+詳情 API,支援搜尋/篩選/分頁)
- 修正 Google OAuth callback 改為 redirect 至前端(SocialAuthController)
- 新增 config/cors.php 允許前端 origin
- .gitignore 新增 frontend/ 排除規則

前端(frontend/):
- Vue 3 + Vite + Tailwind CSS + Pinia + Vue Router
- 頁面:首頁、課程列表、課程詳情、登入、註冊、個人資料、OAuth callback
- 整合至 Docker(multi-stage build,nginx 靜態服務於 port 5173)

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-10 01:41:28 +08:00
parent 725c86f434
commit 550e2fc97a
48 changed files with 5887 additions and 17 deletions
@@ -105,24 +105,10 @@ class SocialAuthController extends Controller
// 生成 Sanctum token
$token = $user->createToken('google-auth')->plainTextToken;
// 載入會員資料
$user->load('memberProfile');
return response()->json([
'status' => true,
'message' => 'Google 登入成功',
'data' => [
'user' => $user,
'token' => $token,
'token_type' => 'Bearer',
]
]);
return redirect(env('FRONTEND_URL') . '/auth/callback?token=' . $token);
} catch (\Exception $e) {
return response()->json([
'status' => false,
'message' => 'Google 登入失敗:' . $e->getMessage()
], 500);
return redirect(env('FRONTEND_URL') . '/login?error=oauth_failed');
}
}
}