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.



 <?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.


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.

Komentar

Postingan Populer