04 May 2016

Tutorial Simple Auth Laravel 5.2

Tutorial cara membuat simple auth pada laravel 5.2 dengan menggunakan auth bawaan laravel.


Routing

Code
Php artisan make:auth
Command ini sebaiknya digunakan pada aplikasi yang baru dibuat karena akan menginstall registration dan login view. HomeController akan degenerate otomatis oleh command.

Views

Dengan command php artisan make:auth tadi akan membuat semua view yang dibutuhkan untuk authentication. Letaknya di resources/views/auth folder. Juga membuat file di resources/views/layouts folder dengan layout dasar bawaan laravel. Jadi, Anda tidak perlu repot dan kebingungan mau diletakkan dimana file-file untuk auth, bawaannya sendiri menggunakan bootstrap CSS. Namun Anda dapat menggant sesuai dengan keinginan kalian, menggantinya dengan template lain. Nanti saya akan mendemokan pada postingan selanjutnya bagaimana cara merubah template laravel.
Command di atas akan menggenerate otomatis beberapa file, diantaranya:
Created View: C:\xampp\htdocs\rtlh\resources/views/auth/login.blade.php
Created View: C:\xampp\htdocs\rtlh\resources/views/auth/register.blade.php
Created View: C:\xampp\htdocs\rtlh\resources/views/auth/passwords/email.blade.php
Created View: C:\xampp\htdocs\rtlh\resources/views/auth/passwords/reset.blade.php
Created View: C:\xampp\htdocs\rtlh\resources/views/auth/emails/password.blade.php
Created View: C:\xampp\htdocs\rtlh\resources/views/layouts/app.blade.php
Created View: C:\xampp\htdocs\rtlh\resources/views/home.blade.php
Created View: C:\xampp\htdocs\rtlh\resources/views/welcome.blade.php
Installed HomeController.
Updated Routes File.
Authentication scaffolding generated successfully!

Migrating

Berikutnya kita migrate untuk membuat beberapa table yang dibutuhkan oleh auth untuk register dan login. Jalankan command php artisan migrate.

Authenticating

Sekarang seharusnya authentication sudah bias digunakan, dari mulai register sampai login. Register menyimpan data user baru ke dalam database dan saat login membuat session untuk user tersebut.
Path Customization
Ketika berhasil login, secara default akan redirect ke / . Anda dapat merubah redirect setelah login dengan mendefinisikan merubah property redirecTo yang berada di AuthController :
Misal, kita akan redirect ke /home, maka :
protected $redirectTo = '/home';
Ketika user tidak berhasil login, akan redirect kembali ke login form secara otomatis.
Guard Customization
Anda juga dapat merubah “guard” yang dapat digunakan untuk authentication user. Untuk custom guard, definisikan guard property di AuthController. Properti ini dapat Anda temukan konfigurasinya di config/auth.php. Misal kita akan memasang guard untuk admin :
protected $guard = 'admin';

Retrieving The Authenticated User

Untuk mendapatkan user yang telah berhasil login, Anda dapat memanfaatkan Auth Façade :
$user = Auth::user();
Secara alternative, ketika user berhasil login, Anda dapat mengaksesnya melalui Illuminate\Http\Request. Caranya?
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ProfileController extends Controller
{

    /**
     * Update the user's profile.
     *
     * @param  Request  $request
     * @return Response
     */
    public function updateProfile(Request $request)
    {
        if ($request->user()) {
            // $request->user() returns an instance of the authenticated user...
        }
    }

}
Gunakan instance Illuminate\Http\Request;
Dapatkan informasi tentang user dengan $request->user().

Cek Apakah User Berhasil Authenticate?

Untuk mengecek apakah user berhasil login atau tidak, Anda dapat menggunakan check method pada Auth façade, balikannya adalah true apabila user berhasil login.
if (Auth::check()) {

    // The user is logged in...
}

Protecting Routes

Dengan menggunakan auth, Anda dapat memproteksi route mana sajakah yang boleh dan tidak untuk diakses yaitu menggunakan middleware routes. Yang dibutuhkan adalah meng attach middlewarenya di route definition.
// Using A Route Closure...
Route::get('profile', ['middleware' => 'auth', function() {

    // Only authenticated users may enter...
}]);
// Using A Controller...
Route::get('profile', [

    'middleware' => 'auth',
    'uses' => 'ProfileController@show'

]);
Jika Anda ingin menggunakan middleware dalam satu controller, yaitu semua function dan method dalam lingkup middleware tersebut, dengan cara :
public function __construct()
{

    $this->middleware('auth');
}

Logging Out

Untuk log out setelah login, sangatlah mudah, Anda dapat memakai logout method yang ada di Auth façade. Dengan method ini, akan membersihkan semua informasi yang ada pada Session user tersebut.
Auth::logout();

Conclusion

Dengan menggunakan authentication bawaan laravel akan membuat auth dengan lebih mudah dan cepat. Cara membuat auth di laravel cukup menggunakan beberapa baris command code untuk menggenerate view, controller, model, migration. Anda dapat merubah konfigurasi bawaan auth laravelnya sendiri. Anda juga dapat membuat auth sendiri terlepas dari code bawaan laravel.


No comments: