Contoh Redirect::intended() Di Laravel

By Budyks    PHP

Saat user ingin mengakses url di Aplikasi/Web yang membutuhkan Autentifikasi atau harus login dahulu, sebaiknya kita mengarahkan kembali si User ke halaman yang diaksesnya setelah login. Ini sangat penting bagi User Experience aplikasi web kita.

misalnya seorang user ingin mengakses halaman pribadinya sbb :
http://example.com/profile
atau bisa saja halaman yang lain yang memerlukan login seperti
http://example.com/admin
http://example.com/dashboard
http://example.com/edit-profile
...
...

Nah seringkali setelah login (pasca mengakses url diatas) kita redirect/arahkan ke halaman utama seperti ke Home,Admin dsb. Untuk UX yang bagus, kita harus mengarahkan user kembali ke halaman/url yang ia coba akses sebelumnya. 

Untuk melakukan itu, Laravel memberikan kita kemudahan dengan fitur Redirect::intended()
untuk membuat Redirect::intended() berkerja, kita harus mengubah filter.php sbb:
//filter.phpRoute::filter('auth', function(){    if (Auth::guest()) return Redirect::to('login');});
menjadi 
//filter.phpRoute::filter('auth', function(){    if (Auth::guest()) return Redirect::guest('login');});
Redirect::guest() akan otomatis menambahkan Session untuk menyimpan url yang sebelumnya diakses. Jika sudah kita tinggal merubah Login handler nya. 
//AuthController.php

public function doLogin(){           //check auth   if(Auth::attempt(Input::all())){
       return Redirect::intended(); //see this line               }else{                  return Redirect::to('login')->with('error', 'Invalid username or password')->withInput();   }        }
Route nya seperti biasa
//route profile
Route::get('profile',array('uses'=>'UserController@myProfile','before'=>'auth'));

//route login
Route::post('/login', array('uses' => 'AuthController@doLogin'));
 
Jika sudah silahkan test . misal user akses url dalam keadaan belum login
http://example.com/profile
akan di redirect ke halaman Login, lalu setelah Login akan kembali ke halaman Profile dengan url
http://example.com/profile
Sekian, semoga bermanfaat.

Comments



    Follow Us