group(function () { Route::get('/', function () { return view('pages.auth.signin', ['title' => 'Sign In']); })->name('home'); Route::get('/signin', function () { return view('pages.auth.signin', ['title' => 'Sign In']); })->name('signin'); Route::get('/signup', function () { return view('pages.auth.signup', ['title' => 'Sign Up']); })->name('signup'); // Social Auth Redirects Route::get('/auth/github/redirect', function () { return Socialite::driver('github')->redirect(); })->name('auth.github'); Route::get('/auth/google/redirect', function () { return Socialite::driver('google')->redirect(); })->name('auth.google'); }); // Social Auth Callbacks (Publicly accessible but technically part of auth flow) Route::get('/auth/github/callback', function () { $githubUser = Socialite::driver('github')->user(); $user = User::updateOrCreate([ 'github_id' => $githubUser->id, 'email' => $githubUser->email, ], [ 'name' => $githubUser->name, 'email' => $githubUser->email, 'github_id' => $githubUser->id, 'github_token' => $githubUser->token, 'github_refresh_token' => $githubUser->refreshToken, 'password' => Illuminate\Support\Facades\Hash::make($githubUser->id), ]); Auth::login($user); return redirect()->route('dashboard'); }); Route::get('/auth/google/callback', function () { $googleUser = Socialite::driver('google')->user(); $user = User::updateOrCreate([ 'google_id' => $googleUser->id, 'email' => $googleUser->email, ], [ 'name' => $googleUser->name, 'email' => $googleUser->email, 'google_id' => $googleUser->id, 'google_token' => $googleUser->token, 'google_refresh_token' => $googleUser->refreshToken, 'password' => Illuminate\Support\Facades\Hash::make($googleUser->id), ]); Auth::login($user); return redirect()->route('dashboard'); }); // Authenticated Routes Route::middleware('auth')->group(function () { // dashboard pages Route::get('/dashboard', function () { return view('pages.dashboard', ['title' => 'Dashboard']); })->name('dashboard'); // calender pages Route::get('/calendar', function () { return view('pages.calender', ['title' => 'Calendar']); })->name('calendar'); // profile pages Route::get('/profile', function () { return view('pages.profile', ['title' => 'Profile']); })->name('profile'); // form pages Route::get('/form-elements', function () { return view('pages.form.form-elements', ['title' => 'Form Elements']); })->name('form-elements'); // tables pages Route::get('/basic-tables', function () { return view('pages.tables.basic-tables', ['title' => 'Basic Tables']); })->name('basic-tables'); // pages Route::get('/blank', function () { return view('pages.blank', ['title' => 'Blank']); })->name('blank'); // chart pages Route::get('/line-chart', function () { return view('pages.chart.line-chart', ['title' => 'Line Chart']); })->name('line-chart'); Route::get('/bar-chart', function () { return view('pages.chart.bar-chart', ['title' => 'Bar Chart']); })->name('bar-chart'); // ui elements pages Route::get('/alerts', function () { return view('pages.ui-elements.alerts', ['title' => 'Alerts']); })->name('alerts'); Route::get('/avatars', function () { return view('pages.ui-elements.avatars', ['title' => 'Avatars']); })->name('avatars'); Route::get('/badge', function () { return view('pages.ui-elements.badges', ['title' => 'Badges']); })->name('badges'); Route::get('/buttons', function () { return view('pages.ui-elements.buttons', ['title' => 'Buttons']); })->name('buttons'); Route::get('/image', function () { return view('pages.ui-elements.images', ['title' => 'Images']); })->name('images'); Route::get('/videos', function () { return view('pages.ui-elements.videos', ['title' => 'Videos']); })->name('videos'); // Logout Route::post('/logout', function () { Auth::logout(); request()->session()->invalidate(); request()->session()->regenerateToken(); return redirect('/'); })->name('logout'); }); // Public / Error Pages Route::get('/error-404', function () { return view('pages.errors.error-404', ['title' => 'Error 404']); })->name('error-404'); Route::get('/php', function () { phpinfo(); });