{"id":9482,"date":"2024-12-19T04:36:42","date_gmt":"2024-12-19T04:36:42","guid":{"rendered":"https:\/\/binus.ac.id\/knowledge\/?p=9482"},"modified":"2024-12-19T04:43:01","modified_gmt":"2024-12-19T04:43:01","slug":"menyiapkan-oauth-di-lumen-menggunakan-laravel-passport","status":"publish","type":"post","link":"https:\/\/binus.ac.id\/binus-digital\/2024\/12\/19\/menyiapkan-oauth-di-lumen-menggunakan-laravel-passport\/","title":{"rendered":"Menyiapkan OAuth di Lumen menggunakan Laravel Passport"},"content":{"rendered":"<p><strong>1. Instalasi Lumen Passport<\/strong><\/p>\n<p>Karena Laravel Passport tidak secara resmi mendukung Lumen, kita dapat menggunakan paket pihak ketiga seperti <code>dusterio\/lumen-passport<\/code> yang memungkinkan integrasi Passport dengan Lumen.<\/p>\n<p>Untuk menginstalnya, jalankan perintah berikut:<\/p>\n<blockquote>\n<div class=\"contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950\">composer require dusterio\/lumen-passport<\/div>\n<\/blockquote>\n<div><strong>2. Konfigurasi Aplikasi<\/strong><\/div>\n<div><\/div>\n<div><strong>Aktifkan Facades dan Eloquent<\/strong>: Di file <code>bootstrap\/app.php<\/code>, tambahkan baris berikut:<\/div>\n<blockquote>\n<div>$app-&gt;withFacades();<br \/>\n$app-&gt;withEloquent();<\/div>\n<\/blockquote>\n<div><strong>Daftarkan Middleware dan Service Provider<\/strong>: Masih di file yang sama, tambahkan:<\/div>\n<blockquote>\n<div>\n<p>$app-&gt;routeMiddleware([<br \/>\n&#8216;auth&#8217; =&gt; App\\Http\\Middleware\\Authenticate::class,<br \/>\n]);<\/p>\n<p>$app-&gt;register(Laravel\\Passport\\PassportServiceProvider::class);<br \/>\n$app-&gt;register(Dusterio\\LumenPassport\\PassportServiceProvider::class);<\/p>\n<\/div>\n<\/blockquote>\n<p><strong>3. Migrasi dan Instalasi Passport<\/strong><\/p>\n<p>Jalankan perintah berikut untuk membuat tabel yang diperlukan dan menginstal Passport:<\/p>\n<blockquote><p>php artisan migrate<br \/>\nphp artisan passport:install<\/p><\/blockquote>\n<p><strong>4. Konfigurasi Autentikasi<\/strong><\/p>\n<ul>\n<li><strong>Buat File Konfigurasi<\/strong>: Buat direktori <code>config<\/code> di root proyek (jika belum ada) dan buat file <code>auth.php<\/code> dengan isi:<\/li>\n<\/ul>\n<blockquote>\n<div>\n<p>&lt;?php<\/p>\n<p>return [<br \/>\n&#8216;defaults&#8217; =&gt; [<br \/>\n&#8216;guard&#8217; =&gt; &#8216;api&#8217;,<br \/>\n&#8216;passwords&#8217; =&gt; &#8216;users&#8217;,<br \/>\n],<\/p>\n<p>&#8216;guards&#8217; =&gt; [<br \/>\n&#8216;api&#8217; =&gt; [<br \/>\n&#8216;driver&#8217; =&gt; &#8216;passport&#8217;,<br \/>\n&#8216;provider&#8217; =&gt; &#8216;users&#8217;,<br \/>\n],<br \/>\n],<\/p>\n<p>&#8216;providers&#8217; =&gt; [<br \/>\n&#8216;users&#8217; =&gt; [<br \/>\n&#8216;driver&#8217; =&gt; &#8216;eloquent&#8217;,<br \/>\n&#8216;model&#8217; =&gt; \\App\\Models\\User::class,<br \/>\n],<br \/>\n],<br \/>\n];<\/p>\n<\/div>\n<\/blockquote>\n<div>\n<ul>\n<li><strong>Muat Konfigurasi<\/strong>: Di file <code>bootstrap\/app.php<\/code>, tambahkan:<\/li>\n<\/ul>\n<\/div>\n<blockquote>\n<div>$app-&gt;configure(&#8216;auth&#8217;);<\/div>\n<\/blockquote>\n<div>\n<p><strong>5. Atur Rute OAuth<\/strong><\/p>\n<p>Di file <code>bootstrap\/app.php<\/code>, daftarkan rute Passport:<\/p>\n<blockquote><p>\\Dusterio\\LumenPassport\\LumenPassport::routes($app, [&#8216;prefix&#8217; =&gt; &#8216;v1\/oauth&#8217;]);<\/p><\/blockquote>\n<p><strong>6. Modifikasi Model User<\/strong><\/p>\n<p>Di file <code>App\\Models\\User.php<\/code>, pastikan model menggunakan trait <code>HasApiTokens<\/code>:<\/p>\n<blockquote><p>use Laravel\\Passport\\HasApiTokens;<\/p>\n<p>class User extends Authenticatable<br \/>\n{<br \/>\nuse HasApiTokens, Notifiable;<\/p>\n<p>\/\/ &#8230;<br \/>\n}<\/p><\/blockquote>\n<p>Juga, tambahkan field <code>password<\/code> ke dalam properti <code>$fillable<\/code>:<\/p>\n<blockquote><p>protected $fillable = [<br \/>\n&#8216;name&#8217;, &#8217;email&#8217;, &#8216;password&#8217;,<br \/>\n];<\/p><\/blockquote>\n<p><strong>7. Pengujian<\/strong><\/p>\n<p>Untuk memastikan semuanya berfungsi, Anda dapat membuat kontroler <code>UsersController<\/code> dengan metode untuk registrasi dan login pengguna.<\/p>\n<ul>\n<li><strong>Rute Registrasi<\/strong>: Di file <code>routes\/web.php<\/code>, tambahkan:<\/li>\n<\/ul>\n<blockquote><p>$router-&gt;post(&#8216;\/register&#8217;, &#8216;UsersController@register&#8217;);<\/p><\/blockquote>\n<ul>\n<li><strong>Migrasi Tabel Users<\/strong>: Buat migrasi untuk tabel <code>users<\/code> dengan skema:<\/li>\n<\/ul>\n<blockquote><p>Schema::create(&#8216;users&#8217;, function (Blueprint $table) {<br \/>\n$table-&gt;bigIncrements(&#8216;id&#8217;);<br \/>\n$table-&gt;string(&#8216;name&#8217;);<br \/>\n$table-&gt;string(&#8217;email&#8217;)-&gt;unique();<br \/>\n$table-&gt;string(&#8216;password&#8217;);<br \/>\n$table-&gt;timestamps();<br \/>\n});<\/p><\/blockquote>\n<p>Setelah itu, jalankan migrasi:<\/p>\n<blockquote><p>php artisan migrate<\/p><\/blockquote>\n<p>Untuk autentikasi pengguna, Anda dapat menggunakan endpoint <code>\/v1\/oauth\/token<\/code> dengan mengirim permintaan POST yang berisi <code>client_id<\/code>, <code>client_secret<\/code>, <code>username<\/code>, dan <code>password<\/code>.<\/p>\n<p>Dengan mengikuti langkah-langkah di atas, Anda telah berhasil mengintegrasikan Laravel Passport ke dalam aplikasi Lumen Anda, memungkinkan implementasi OAuth2 untuk autentikasi API.<\/p>\n<\/div>\n<p>untuk pembahasan lebih lanjut dapat merujuk ke :<\/p>\n<p><a href=\"https:\/\/medium.com\/the-andela-way\/setting-up-oauth-in-lumen-using-laravel-passport-2de9d007e0b0\">https:\/\/medium.com\/the-andela-way\/setting-up-oauth-in-lumen-using-laravel-passport-2de9d007e0b0<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. Instalasi Lumen Passport Karena Laravel Passport tidak secara resmi mendukung Lumen, kita dapat menggunakan paket pihak ketiga seperti dusterio\/lumen-passport yang memungkinkan integrasi Passport dengan Lumen. Untuk menginstalnya, jalankan perintah berikut: composer require dusterio\/lumen-passport 2. Konfigurasi Aplikasi Aktifkan Facades dan Eloquent: Di file bootstrap\/app.php, tambahkan baris berikut: $app-&gt;withFacades(); $app-&gt;withEloquent(); Daftarkan Middleware dan Service Provider: Masih [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":12210,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[77],"tags":[],"class_list":["post-9482","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-articles"],"_links":{"self":[{"href":"https:\/\/binus.ac.id\/binus-digital\/wp-json\/wp\/v2\/posts\/9482","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/binus.ac.id\/binus-digital\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/binus.ac.id\/binus-digital\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/binus.ac.id\/binus-digital\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/binus.ac.id\/binus-digital\/wp-json\/wp\/v2\/comments?post=9482"}],"version-history":[{"count":4,"href":"https:\/\/binus.ac.id\/binus-digital\/wp-json\/wp\/v2\/posts\/9482\/revisions"}],"predecessor-version":[{"id":12211,"href":"https:\/\/binus.ac.id\/binus-digital\/wp-json\/wp\/v2\/posts\/9482\/revisions\/12211"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/binus.ac.id\/binus-digital\/wp-json\/wp\/v2\/media\/12210"}],"wp:attachment":[{"href":"https:\/\/binus.ac.id\/binus-digital\/wp-json\/wp\/v2\/media?parent=9482"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/binus.ac.id\/binus-digital\/wp-json\/wp\/v2\/categories?post=9482"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/binus.ac.id\/binus-digital\/wp-json\/wp\/v2\/tags?post=9482"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}