How to create Multiple Role Base Authentication in Laravel 12 (Scratch Code)

hemorrhoid
0
Larvel 12
Creating Multiple Role Base Authentication allows you to assign different type of user like super admin, admin, or user in application. here is guide to implementing step by step in lastest laravel 12 framework below

1. Update Database Table User add field is_role for user, admin and super admin


Schema::create('users', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->string('email')->unique();
            $table->timestamp('email_verified_at')->nullable();
            $table->string('password');
	    $table->tinyInteger('is_role',4)->default(0)->comment('0:user, 1:admin, 2:super admin');
            $table->rememberToken();
            $table->timestamps();
        });
        

2. Create Register form for Register User can select Super Admin, Admin, User 

3. Create Route in web.php(Routes)


	Route::get('register', [AuthController::class, 'registration']);
   	Route::post('register_post', [AuthController::class, 'registration_post']);

4. Create Function registration, and registration_post in App\Http\Controller\AuthController.php

Function registration is use for view register form and registration_post function for instert data to table user.


	use App\Models\User;
    use Str;
    use Hash;
    
    public function registration(){
    	return view('auth.registration')
    }
    
    public function registration_post(Request $request){
    	$user = request()->validate([
        	'name'	=> 'required',
            'email'	=> 'required|unique:users',
            'password'	=> 'required|min:6',
            'confirm_password'	=> 'required|min:6|same:password',
            'is_role'	=> 'required',
        ]);
    	$user = new User;
        $user->name			= trim($request->name);
        $user->email			= trim($request->email);
        $user->password		= Hash::make($request->password);
        $user->is_role		= trim($request->is_role);
        $user->remember_token= Str::random(50);
        $user->save();
        return redirect('login')->with('success','Register successfull');
    }

Post a Comment

0Comments
Post a Comment (0)