From cb45d1b59a3a41b5637fccc0f6069ae5b38ee3e4 Mon Sep 17 00:00:00 2001 From: Zakwan Hamdan Date: Tue, 20 Oct 2020 12:58:32 +0800 Subject: [PATCH] fix user can back to previous page after logout --- app/Http/Controllers/Auth/LoginController.php | 31 ++++++++++++++ app/Http/Controllers/GadaianController.php | 4 +- app/Http/Kernel.php | 1 + app/Http/Middleware/NoHttpCache.php | 40 +++++++++++++++++++ routes/web.php | 8 ++-- 5 files changed, 80 insertions(+), 4 deletions(-) create mode 100644 app/Http/Middleware/NoHttpCache.php diff --git a/app/Http/Controllers/Auth/LoginController.php b/app/Http/Controllers/Auth/LoginController.php index 18a0d08..ec19d4b 100644 --- a/app/Http/Controllers/Auth/LoginController.php +++ b/app/Http/Controllers/Auth/LoginController.php @@ -4,7 +4,11 @@ namespace App\Http\Controllers\Auth; use App\Http\Controllers\Controller; use App\Providers\RouteServiceProvider; +use Illuminate\Support\Facades\Auth; +use Illuminate\Support\Facades\Session; +use Illuminate\Support\Facades\Redirect; use Illuminate\Foundation\Auth\AuthenticatesUsers; +use Illuminate\Http\Request; class LoginController extends Controller { @@ -37,4 +41,31 @@ class LoginController extends Controller { $this->middleware('guest')->except('logout'); } + + public function login() + { + return view('auth.login'); + } + + public function authenticate(Request $request) + { + $request->validate([ + 'email' => 'required|string|email', + 'password' => 'required|string', + ]); + + $credentials = $request->only('email', 'password'); + + if (Auth::attempt($credentials)) { + return view('homepage.home'); + } + + return redirect('login')->with('error', 'Oppes! You have entered invalid credentials'); + } + + public function logout(){ + Auth::logout(); + Session::flush(); + return Redirect::to('/'); + } } diff --git a/app/Http/Controllers/GadaianController.php b/app/Http/Controllers/GadaianController.php index f52e10d..11de3c0 100644 --- a/app/Http/Controllers/GadaianController.php +++ b/app/Http/Controllers/GadaianController.php @@ -4,6 +4,8 @@ namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Services\CustomerService; +use Illuminate\Support\Facades\Session; +use Illuminate\Support\Facades\Http; class GadaianController extends Controller { @@ -16,7 +18,7 @@ class GadaianController extends Controller public function index(Request $request) { $noic = $request->noic; - $customer_info = $this->customerService->getCustomerInfo($noic); + $customer_info = Http::get(config('api.url') . '/api/customers/'. $noic)->json(); $limit_pinjaman_semasa = $customer_info['limit_pinjaman'] - $customer_info['pinjaman_semasa']; return view('gadaian.index',compact('customer_info','limit_pinjaman_semasa')); } diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index 36ced13..5f6bd3d 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -37,6 +37,7 @@ class Kernel extends HttpKernel \Illuminate\View\Middleware\ShareErrorsFromSession::class, \App\Http\Middleware\VerifyCsrfToken::class, \Illuminate\Routing\Middleware\SubstituteBindings::class, + \App\Http\Middleware\NoHttpCache::class, ], 'api' => [ diff --git a/app/Http/Middleware/NoHttpCache.php b/app/Http/Middleware/NoHttpCache.php new file mode 100644 index 0000000..d76a5eb --- /dev/null +++ b/app/Http/Middleware/NoHttpCache.php @@ -0,0 +1,40 @@ +header('Pragma', 'no-cache'); + $response->header('Expires', 'Fri, 01 Jan 1990 00:00:00 GMT'); + $response->header('Cache-Control', 'no-cache, must-revalidate, no-store, max-age=0, private'); + + return $response; + } +} \ No newline at end of file diff --git a/routes/web.php b/routes/web.php index ec03bef..85b0760 100644 --- a/routes/web.php +++ b/routes/web.php @@ -15,15 +15,17 @@ use Illuminate\Support\Facades\Route; Route::get('/',['as'=>'login','uses'=>'HomeController@index']); -Auth::routes(); +// Auth::routes(); Route::middleware(['auth:juruwang,penilai,khazanah,PPC'])->group(function(){ }); +Route::post('logout', ['as' => 'logout', 'uses' => 'Auth\LoginController@logout']); + // Route::get('register', 'Auth\RegisterController@register'); // Route::post('register', 'Auth\RegisterController@store'); -// Route::get('login', 'Auth\LoginController@login')->name('login'); -// Route::post('login', 'Auth\LoginController@authenticate'); +Route::get('login', 'Auth\LoginController@login')->name('login'); +Route::post('login', 'Auth\LoginController@authenticate'); // Route::get('logout', 'Auth\LoginController@logout')->name('logout'); Route::get('/', 'HomeController@index')->name('home');