Untuk membuat sistem login dan registrasi pengguna dengan Laravel menggunakan paket Spatie Laravel Permission, kamu dapat mengikuti langkah-langkah berikut ini:
1. Mengupdate Tampilan Register
Edit view resources/views/auth/register.blade.php untuk menambahkan pilihan role saat registrasi:
<div class="form-group">
<label for="role">Role</label>
<select id="role" class="form-control" name="role">
<option value="user">User</option>
<option value="admin">Admin</option>
</select>
</div>
2. Mengupdate Register Controller
Edit app/Http/Controllers/Auth/RegisterController.php untuk menyimpan peran pengguna saat registrasi:
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Models\User;
use Illuminate\Foundation\Auth\RegistersUsers;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
use Spatie\Permission\Models\Role;
class RegisterController extends Controller
{
use RegistersUsers;
protected function validator(array $data)
{
return Validator::make($data, [
'name' => ['required', 'string', 'max:255'],
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
'password' => ['required', 'string', 'min:8', 'confirmed'],
'role' => ['required', 'string', 'in:user,admin'],
]);
}
protected function create(array $data)
{
$user = User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
]);
$user->assignRole($data['role']);
return $user;
}
}
3. Mengupdate Tampilan Login (Optional)
Jika kamu ingin menambahkan fitur lain di halaman login, edit resources/views/auth/login.blade.php sesuai kebutuhan kamu.
4. Melindungi Route dengan Middleware
kamu dapat melindungi route menggunakan middleware role atau permission. Contoh:
Route::group(['middleware' => ['role:admin']], function () {
Route::get('/admin', [AdminController::class, 'index']);
});
5. Jalankan Server Laravel
Jalankan server Laravel jika belum berjalan:
php artisan serve
6. Verifikasi Implementasi
Verifikasi bahwa autentikasi bekerja dengan mencoba registrasi dan login sebagai pengguna dengan berbagai peran dan memeriksa akses ke route yang dilindungi.
Dengan langkah-langkah di atas, kamu telah mengatur sistem login dan registrasi pengguna dengan Laravel menggunakan paket Spatie Laravel Permission. kamu dapat membuat, menetapkan, dan memeriksa peran dan izin pengguna untuk mengelola akses ke berbagai bagian aplikasi kamu.