mirror of
https://github.com/twinpath/app-beta.git
synced 2026-01-26 05:45:26 +07:00
182 lines
4.8 KiB
PHP
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();
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|