Seputar Pemrograman

Cara Menggunakan package sentry di framework laravel bagian install dan register

  08 Oktober 2014     Tutorial Framework Laravel     seputarpemrograman

Sebelum kita membahas bagaimana cara install dan cara membuat register atau pendaftaran user menggunakan cartalyst sentry. Akan saya jelaskan apa itu package sentry, package sentry adalah sebuah package yang digunakan untuk mempermudah dalam manajemen user seperti pendaftaran, login, hak akses user menurut user atau grup user, aktivasi user, lupa password atau reset password. Jika anda biasanya untuk membuat itu secara manual akan lebih lama jadi jika anda memakai sentry akan lebih cepat dari biasanya karena sudah disediakan fungsi – fungsi seperti yang saya sebutkan diatas.

 

Install Cartalyst Sentry

Pada kali ini kita menggunakan sentry pada framework laravel. Bagaimana cara install sentry di framework laravel. Sebelumnya siapkan project laravel yang siap digunakan jika anda belum punya silahkan install framework laravel lebih dahulu. Untuk tutorial ini saya menggunakan project yang telah dibuat sampai tutorial CRUD Eloquent ORM dan RESTful Resource Controllers Laravel. Tampilan Projectnya seperti gambar dibawah ini.

install cartalyst sentry

Tujuan menggunakan project diatas nantinya menu – menu yang sudah ada akan dibuat study kasus langsung ketika manajemen usernya. Jika project siap silahkan dibuka file composer.json lalu tambahkan perintah berikut ini.

"cartalyst/sentry": "2.1.*"

Maka di composer.json akan menjadi seperti ini.

....
"require": {
		"laravel/framework": "4.1.*",
		"cartalyst/sentry": "2.1.*"
	},
.....

Lalu jalankan perintah

composer update

Lebih jelasnya seperti gambar dibawah ini.

composer update sentry

Jangan lupa arahkan commad prompt / cmd ke folder project anda caranya ketik

cd \xampp\htdocs\namafolderproject, \xampp\htdocs\ tergantung dimana anda meletakkan project yang telah dibuat.

Jika install selesai maka bisa dicek di folder vendor ada folder bernama cartalyst dan didalamnya ada folder bernama sentry. Selanjutnya setting  app.php didalam folder app/config. Didalam array $providers tambahkan baris code berikut ini.

'Cartalyst\Sentry\SentryServiceProvider',

Dan didalam array $aliases tambahkan baris code seperti dibawah ini.

'Sentry' => 'Cartalyst\Sentry\Facades\Laravel\Sentry',

Kemudian setting database.php didalam folder app/config isi sesuai dengan configurasi database anda. Untuk configurasi saya seperti ini.

'mysql' => array(
			'driver'    => 'mysql',
			'host'      => 'localhost',
			'database'  => 'sentry',
			'username'  => 'root',
			'password'  => '',
			'charset'   => 'utf8',
			'collation' => 'utf8_unicode_ci',
			'prefix'    => '',
),

Jika selesai silahkan jalankan perintah dibawah ini di command prompt. Jika anda belum pernah belajar tentang php artisan migrate atau migration pada laravel anda bisa melihat tutorial migration dan schema builder.

php artisan migrate --package=cartalyst/sentry

Jika anda juga menggunakan project yang sama seperti tutorial ini jalankan juga peritah dibawah ini.

php artisan migrate 

Jangan lupa arahkan path command prompt kedalam project anda.

php asrtisan migrate sentry

Sekarang silahkan cek didatabase anda pasti akan otomatis dibuatkan strutur tabel seperti gambar berikut ini.

strutur database sentry

Lalu jalankan juga perintah berikut ini tentunya melalui command promt / cmd.

php artisan config:publish cartalyst/sentry

maka otomatis dibuatkan file untuk configurasi sentry, untuk cek silahkan cari file bernama config.php didalam folder app/config/cartalyst/sentry.

 

Membuat Form Register / Pendaftaran dengan Cartalyst Sentry.

Kalau kita lihat di website resmi sentry setelah install sentry kita akan diajarkan authentication and login tapi ditutorial ini saya balik kita pelajari membuat register atau pendaftaran user terlebih dahulu. Jika anda ingin belajar langsung authentication and login anda bisa melihat tutorial bagian kedua setelah tutorial ini. Kembali pada pendaftaran user, untuk membuat user baru / mendaftarkan user baru bisa menggunakan fungsi Sentry::register() Pertama tama buatlah file bernama UserController.php didalam folder Controllers. Dan isikan denga code dibawah ini.

 

< ?php
class UserController extends \BaseController {
	public function register()
	{
	}

	public function doRegister()
	{	
	}
}

// Hilangkan spasi setelah tanda <

Untuk fungsi atau function register ubah menjadi seperti ini.

public function register()
{
	return View::make('sentry.register');
}

Untuk fungsi atau function doRegister ubah menjadi seperti dibawah ini.

public function doRegister()
{
	
	$rules = array(
	    'first_name' => 'required',
	    'last_name' => 'required',
	    'email' => 'required|email|unique:users',
        'password' => 'required|between:4,10|confirmed',
        'password_confirmation' => 'between:4,10'
	);

	$validator = Validator::make(Input::all(), $rules);

	if ($validator->fails()) {
		return Redirect::to('register')
			->withErrors($validator);
	} else {
		try
		{
		    $user = Sentry::register(array(
		        'first_name'  => Input::get( 'first_name' ),
		        'last_name'   => Input::get( 'last_name' ),
		        'email'     => Input::get( 'email' ),
		        'password'  => Hash::make(Input::get( 'password' )),
		        'activated' => true,
		    ));

		    $activationCode = $user->getActivationCode();
		}
		catch (Cartalyst\Sentry\Users\LoginRequiredException $e)
		{
		    Session::flash('message', 'Login field is required.');
			return Redirect::to('register');
		}
		catch (Cartalyst\Sentry\Users\PasswordRequiredException $e)
		{
		    Session::flash('message', 'Password field is required.');
			return Redirect::to('register');
		}
		catch (Cartalyst\Sentry\Users\UserExistsException $e)
		{
		    Session::flash('message', 'User with this login already exists.');
			return Redirect::to('register');
		}

		Session::flash('message', 'Successfully Register, Please Login');
		return Redirect::to('register');
	}	
	
}

Jika selesai silahkan dibuat folder bernama sentry pada folder app/views. Dan didalam folder sentry buat file bernama register.blade.php lalu isikan dengan code dibawah ini.

< !DOCTYPE html>
< html lang="en">
< head>
< title>Halaman Pendaftaran< /title>
{{ HTML::style('assets/css/bootstrap.min.css') }}
{{ HTML::style('assets/css/sb-admin.css') }}
{{ HTML::style('assets/font-awesome-4.1.0/css/font-awesome.min.css') }}
< /head>
< body>

< div class="row">
        < div class="col-lg-4 text-center">
           
        < /div>
        < div class="col-lg-4 text-center">
            < div class="panel panel-default">
                < div class="panel-body">
                    {{ Form::open(array('url' => 'register')) }}
					< h1>Register< /h1>
					@if ( Session::get('message') )
					            < div>{{{ Session::get('message') }}}< /div>
					@endif
					< p>
						{{ Form::label('first_name', 'Fisrt Name') }}
						{{ Form::text('first_name', Input::old('first_name'), array('class' => 'form-control','placeholder'=>'Fisrt Name')) }}
						{{ $errors->first('first_name') }}
					< /p>

					< p>
						{{ Form::label('last_name', 'Last Name') }}
						{{ Form::text('last_name', Input::old('last_name'), array('class' => 'form-control','placeholder'=>'Last Name')) }}
						{{ $errors->first('last_name') }}
					< /p>

					< p>
						{{ Form::label('email', 'Email') }}
						{{ Form::text('email', Input::old('email'), array('class' => 'form-control','placeholder'=>'Email')) }}
						{{ $errors->first('email') }}
					< /p>

					< p>
						{{ Form::label('password', 'Password') }}
						{{ Form::password('password', array('class' => 'form-control','placeholder'=>'Password')) }}
						{{ $errors->first('password') }}
					< /p>

					< p>
						{{ Form::label('password_confirmation', 'Konfirmasi Password') }}
						{{ Form::password('password_confirmation', array('class' => 'form-control','placeholder'=>'Masukkan Konfirmasi Password')) }}
						{{ $errors->first('password_confirmation') }}
					< /p>

					< p>{{ Form::submit('Register', array('class' => 'form-control')) }}< /p>
				{{ Form::close() }}
                < /div>
            < /div>
        < /div>
        < div class="col-lg-4 text-center">
       
        < /div>
< /div>

< /body>
< /html>

// Hilangkan spasi setelah tanda <

Selanjutnya didalam file routes.php dalam folder app silahkan ditambahkan code dibawah ini.

Route::get('register','UserController@register');
Route::post('register','UserController@doRegister');

Sekarang coba jalankan dengan url seperti ini.

http://localhost/projectlaravel/public/register

maka akan muncul form sebagai berikut.

form register sentry laravel

Ketika kita isi semua inputan lalu klik button register maka data akan disimpan didatabase ditabel users. Sampai sini kita sudah bisa isntall dan membuat register atau pendaftaran menggunakan package sentry dilaravel.


comments powered by Disqus

CARI

KATEGORI PEMROGRAMAN

PEMROGRAMAN Terpopuler

PEMROGRAMAN ACAK