Cara menggunakan firebase/php-jwt packagist
I'm trying to install php-jwt. When I enter the following command Show
it gives the following error.
For better understanding giving the screenshot here. I've tried enough but couldn't find any good solution. asked Mar 1, 2017 at 13:17
that's
because your are trying to install the latest version of In the same time which is another packages - seems to be
OR update your
Note: Don't forget to take a backup of your project before updating your packages.
kenorb 144k76 gold badges654 silver badges710 bronze badges answered Mar 1, 2017 at 13:28
hassanhassan 7,5542 gold badges23 silver badges34 bronze badges 2 Photo by Mack Fox (MusicFox) on UnsplashMembuat sebuah token pada lumen sangat penting terlebih jika Anda mulai bermain di Restful API. JWT (Json Web Token) adalah sebuah metode yang digunakan untuk mengamankan kumpulan informasi yang dibungkus dalam sebuah parameter url yang terdiri dari header, payload, dan signature. Sederhananya, JWT dapat digunakan sebagai security untuk mengamankan Restful API Anda. Penjelasan tentang JWT, akan saya buat dalam artikel tersendiri. Sekarang langsung saja kita praktekan cara membuat Authentication Token untuk lumen dengan php-jwt. Sebelum saya mulai, saya asumsikan Anda sudah mempersiapkan hal berikut :
Sedangkan hal — hal yang akan kita lakukan dalam artikel ini diantaranya :
#1 Membuat Database Migrasi untuk UserPertama yang kita lakukan adalah membuat migration database untuk table user. Caranya mudah masuk ke terminal kemudian ketik seperti berikut : php artisan make:migration create_users_table Dengan perintah tersebut maka kita akan membuat file baru di folder database/migration/tgl_user_table. Selanjutnya edit seperti berikut : Fungsi diatas digunakan untuk membuat sebuah table user dengan kolom id, name, email, dan password. Sebelum kita lakukan migration, kita lanjut ke step selanjutnya terlebih dahulu. #2 Konfigurasi Database Model FactoryLangkah selanjutnya adalah kita buat model factory yang nantinya kita gunakan untuk membuat sebuah seeder yang berfungsi sebagai seed atau data dummy agar kita tidak kebingungan bolak — balik mengisi atau membuat data dummy. Buka file Model Factorypada folder database/factories/ModelFactory.php. lalu lakukan sedikit penambahan baris koding seperti berikut : Pengaturan tersebut artinya kita memiliki sebuah pengaturan yang nanti akan digunakan untuk membuat seeder dengan memanfaatkan fungsi faker/generator. fungsi inilah yang nanti berperan dalam generate sebuah data dummy. #3 Membuat Database Seeder untuk UserSetelah kita desain database factory-nya. Sekarang saatnnya membuat seeder dengan mengetikkan perintah berikut pada terminal : php artisan make:seed UsersTableSeeder Perintah tersebut secara otomatis akan men-generate sebuah file pada database/seed/ dengan nama UserTableSeeder.php. Tambahkan satu baris coding seperti berikut : Dalam perintah tersebut, artinya kita akan men-generate 100 data dummy pada table user. Bayangkan betapa mudahnya membuat data dummy di lumen / laravel. Jangan lupa untuk mengenalkan UserTableSeeder ke DatabaseSeeder.php terlebih dahulu karena file yang dipanggil nanti adalah file tersebut. Lakukan penambahan konfigurasi seperti berikut : #4 Setting bootstrap/app.phpEits, jangan buru — buru sebelum kita mulai migrasi. Ubah dulu konfigurasi boostrap/app.php sesuai pengaturan berikut : Periksa dan tambahkan jika belum ada, uncomment beberapa perintah. Pastikan sesuai dengan baris kode diatas. Jika sudah baru kita lakukan migrasi dan generate seeder dengan perintah berikut : php artisan migrate Dengan perintah tersebut, Maka anda sudah melakukan migrasi ke database yang artinya anda membuat sebuah table user dengan dummy data sebanyak 100. Isi table user anda kurang lebih akan seperti tampilan berikut : #5 Menginstall php-jwt tokenSetelah tidak ada masalah, maka selanjutnya kita lakukan penambahan library baru php-jwt pada composer kita dengan perintah berikut : composer require firebase/php-jwt Tunggu proses updating composer hingga selesai. Seharusnya sampai disini tidak ada masalah yang berarti. #6 Generate Token via Login di RouteSelajutnya kita akan buat sebuah route untuk mengenerate token ketika user melakukan login. Kita tambahkan pengaturan pada routes/web.php seperti berikut : $router->post( Kemudian kita buat sebuah controller baru sebagai Authentikasi. Masuk ke dalam folder app/Http/Controllers. kemudian buat file baru dengan nama AuthController.php dan isi file dengan codingan seperti berikut : Jika sudah, buka terminal kemudian jalankan web lumen anda dengan perintah berikut : php -S localhost:8080 -t public Jika berhasil, maka akan muncul tulisan
Jika anda menggunakan lumen versi 5.6.4. lanjutkan dengan testing dengan membuka postman. lalu memasukan url
jangan lupa untuk mengisikan email dan password sesuai pada data di database agar mendapatkan token. #7 Konfigurasi Proteksi Route dengan jwtSelanjutnya, mari kita buat proteksi middleware jwt auth. Caranya masuk ke folder app/Http/Middleware kemudian buat file baru dengan nama JwtMiddleware.php. Isi dengan codingan seperti berikut : Jika sudah kembali lagi ke update file boostrap/app.php kemudian kita registerkan jwt.auth seperti berikut : $app->routeMiddleware([ Selanjutnya balik ke file route, dan kita buat proteksi dengan cara seperti berikut : $router->group( Pengaturan diatas tentu dapat kalian custom sesuai dengan keinginan. Anda juga dapat melemparkan response ke controller. #8 Testing APISelanjutnya lakukan percobaan pada postman dan inputkan url
Jika anda belum memasukkan token maka akan muncul pesan kesalahan
Jika anda masukkan token yang didapat dari login, maka akan muncul seluruh data user yang ada dalam database anda dalam format json. Jika sudah demikian artinya proses pembuatan token sudah berhasil. Dibawah saya lampirkan juga kesalahan — kesalahan yang mungkin terjadi selama proses pembuatan. Jika anda memiliki masalah yang berbeda silahkan lemparkan komentar dan mari kita selesaikan bersama. ERROR REPORTINGBerikut adalah kumpulan error atau kesalahan yang terjadi selama proses pembuatan yang dapat anda gunakan sebagai referensi. Jika ada error baru silahkan anda berkomentar dan mari kita cari bersama. #1 In DatabaseSeeder.php — Class ‘User’ not found
use App\User;public function run()
#2 Agrument 2 passed to Tymon\JWTAuth\JWTGuard::__contruct() must …
'providers' => [
#3 Method Illminate\Auth\REquestGuard::onceUsingId does not exist
|