Tutorial PHP Lumen Authentication
Dalam blog ini, akan di jelaskan tutorial mengenai PHP Lumen Authentication
Tutorial ini melanjutkan tutorial projek sebelumnya yang ada pada link berikut:
https://nashrulahsanunadiya.blogspot.com/2019/11/tutorial-php-lumen-validation.html
Jadi, Anda harus menyelesaikan tutorial diatas sebelum mengikuti tutorial ini. Jika sudah melakukan tutorial diatas, silahkan ikuti tulorial PHP Lumen Authentication berikut.
Membuat Model User
Untuk membuat model user, ikuti langkah-langkah dibawah ini:
Buat file baru dengan nama app/Models/User.php, codenya seperti dibawah ini.
Membuat Fungsi Register
Implementasi fungsi ini adalah fungsi index di PostsController.php:
Buka file routes/web.php, tambahkan code dibawah ini.
Buat file baru app/Http/Controllers/AuthController.php, code nya seperti dibawah ini.
Mari kita test dengan menggunakan Postman. Negative case.
Mari kita test dengan menggunakan Postman. Positive case.
Instalasi dan Konfigurasi JWT untuk Lumen
Jalankan command di di command prompt (harus connect internet).
composer require tymon/jwt-auth:dev-develop
Jika berhasil, di file composer.json, akan menjadi seperti ini. Lihat line 10.
Buka file bootstrap/app.php, ubah menjadi seperti dibawah ini. Cari block ‘Register Service Providers’. Dalam kasus ini ada di line 71.
Jalankan command di di command prompt.
php artisan jwt:secret
Membuat fungsi Login
Untuk membuat fungsi login, mari ikuti langkah-langkah dibawah ini.
Buka file bootstrap/app.php, ubah menjadi seperti dibawah ini. Cari block 'Register Middleware'. Dalam kasus ini ada di line 51.
Buat file config/auth.php, dengan code seperti dibawah ini
Buka file routes/web.php, cari group 'auth', ubah dan tambah menjadi seperti dibawah ini
Buka file app/Http/Controllers/AuthController.php, tambahkan code ini. Lihat line 7.
Buka file app/Http/Controllers/AuthController.php, tambahkan function login. Codenya seperti dibawah ini.
Kita Test menggunakan Postman dengan memasukan email dan password yang sudah terdaftar.
Membuat Authenticated Routing
Buka file routes/web.php, ubah posts routing menjadi seperti dibawah ini
Lalu Sekarang kalau kita akses melalui Postman dengan tambahkan header, maka response nya seperti ini.
Mari kita tambahkan header Authorization dengan value [Bearer LOGIN_TOKEN] token yang di dapat setelah login. Authorization ini akan digunakan sebagai sesi Login. Lihat gambar :
Selesai.
Tutorial ini melanjutkan tutorial projek sebelumnya yang ada pada link berikut:
https://nashrulahsanunadiya.blogspot.com/2019/11/tutorial-php-lumen-validation.html
Jadi, Anda harus menyelesaikan tutorial diatas sebelum mengikuti tutorial ini. Jika sudah melakukan tutorial diatas, silahkan ikuti tulorial PHP Lumen Authentication berikut.
Membuat Model User
Untuk membuat model user, ikuti langkah-langkah dibawah ini:
Buat file baru dengan nama app/Models/User.php, codenya seperti dibawah ini.
<?php
namespace App\Models;
use Illuminate\Auth\Authenticatable;
use Laravel\Lumen\Auth\Authorizable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Contracts\Auth\Access\Authorizable as AuthorizableContract;
class User extends Model implements AuthenticatableContract, AuthorizableContract
{
use Authenticatable, Authorizable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password',
];
/**
* The attributes excluded from the model's JSON form.
*
* @var array
*/
protected $hidden = [
'password',
];
}
Membuat Fungsi Register
Implementasi fungsi ini adalah fungsi index di PostsController.php:
Buka file routes/web.php, tambahkan code dibawah ini.
Buat file baru app/Http/Controllers/AuthController.php, code nya seperti dibawah ini.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\User;
class AuthController extends Controller{
public function register(Request $request){
$this->validate($request, [
'name' => 'required|string',
'email' => 'required|email|unique:users', //copas aja ga muat di ss buat edit teks di blognya
'password' => 'required|confirmed',
]);
$input = $request->all();
$validationRules = [
'name' => 'required|string',
'email' => 'required|email|unique:users',
'password' => 'required|confirmed',
];
$validator = \Validator::make($input, $validationRules);
if($validator->fails()){
return response()->json($validator->errors(), 400);
}
$user = new User;
$user->name = $request->input('name');
$user->email = $request->input('email');
$plainPassword = $request->input('password');
$user->password = app('hash')->make($plainPassword);
$user->save();
return response()->json($user, 200);
}
}
Mari kita test dengan menggunakan Postman. Negative case.
Mari kita test dengan menggunakan Postman. Positive case.
Instalasi dan Konfigurasi JWT untuk Lumen
Jalankan command di di command prompt (harus connect internet).
composer require tymon/jwt-auth:dev-develop
Jika berhasil, di file composer.json, akan menjadi seperti ini. Lihat line 10.
Buka file bootstrap/app.php, ubah menjadi seperti dibawah ini. Cari block ‘Register Service Providers’. Dalam kasus ini ada di line 71.
Jalankan command di di command prompt.
php artisan jwt:secret
Membuat fungsi Login
Untuk membuat fungsi login, mari ikuti langkah-langkah dibawah ini.
Buka file bootstrap/app.php, ubah menjadi seperti dibawah ini. Cari block 'Register Middleware'. Dalam kasus ini ada di line 51.
Buka file app/Models/user.php, ubah menjadi seperti dibawah ini. Lihat line 10, 12 dan line 34 - 40.
Buka file routes/web.php, cari group 'auth', ubah dan tambah menjadi seperti dibawah ini
Buka file app/Http/Controllers/AuthController.php, tambahkan code ini. Lihat line 7.
Buka file app/Http/Controllers/AuthController.php, tambahkan function login. Codenya seperti dibawah ini.
Kita Test menggunakan Postman dengan memasukan email dan password yang sudah terdaftar.
Membuat Authenticated Routing
Buka file routes/web.php, ubah posts routing menjadi seperti dibawah ini
Lalu Sekarang kalau kita akses melalui Postman dengan tambahkan header, maka response nya seperti ini.
Mari kita tambahkan header Authorization dengan value [Bearer LOGIN_TOKEN] token yang di dapat setelah login. Authorization ini akan digunakan sebagai sesi Login. Lihat gambar :
Selesai.


Komentar
Posting Komentar