fix user can back to previous page after logout

This commit is contained in:
Zakwan Hamdan
2020-10-20 12:58:32 +08:00
parent 1dce7747d0
commit cb45d1b59a
5 changed files with 80 additions and 4 deletions
@@ -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('/');
}
}
+3 -1
View File
@@ -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'));
}
+1
View File
@@ -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' => [
+40
View File
@@ -0,0 +1,40 @@
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Response;
use Symfony\Component\HttpFoundation\Response as SymfonyResponse;
class NoHttpCache
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$response = $next($request);
// This step is only needed if you are returning
// a view in your Controller or elsewhere, because
// when returning a view `$next($request)` returns
// a View object, not a Response object, so we need
// to wrap the View back in a Response.
if (!$response instanceof SymfonyResponse) {
$response = new Response($response);
}
/**
* @var $headers \Symfony\Component\HttpFoundation\HeaderBag
*/
$response->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;
}
}
+5 -3
View File
@@ -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');