Files
app-beta/routes/web.php
2025-12-21 08:03:18 +07:00

182 lines
4.8 KiB
PHP

<?php
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Facades\Auth;
use App\Models\User;
use App\Http\Controllers\DashboardController;
use Laravel\Socialite\Facades\Socialite;
// authentication pages
Route::middleware('guest')->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();
});