validate([ "username"=>[ "required", "string", "regex:/^[a-z][a-z0-9-]*[a-z0-9]$/", // regex for a-z 0-9 and - in middle "unique:App\Models\CustomUser", // username shouldn't exist in db ], "password"=>[ "required", "string", "min:1", "max:30", ], "confirm_password"=>[ "required", "string", "min:1", "max:30", ], ]); // check if password matchs confirm password \Log::info($request); if($request['password']!=$request['confirm_password']) { // return error return redirect()->back()->withErrors([ "confirm_password"=>"confirm password doesn't match the password" ]); } // create user $user = new CustomUser(); $user->username = $request->username; $user->password = Hash::make($request->password); $user->save(); return redirect(route("login.form")); } public function login(Request $request){ // username and password $request->validate([ "username"=>[ "required", "string", "regex:/^[a-z][a-z0-9-]*[a-z0-9]$/", // regex for a-z 0-9 and - in middle "exists:App\Models\CustomUser", // username should exist in db ], "password"=>[ "required", "string", "min:1", "max:30", ], ]); // \Log::info($request); // login $user = CustomUser::where("username",$request->username)->first(); if(!Hash::check($request->password, $user->password)){ // password is incorrect Auth::guard('customuser')->logout(); return redirect()->back()->withErrors([ "password"=>"incorrect password" ]); } Auth::guard('customuser')->login($user); return redirect(route('dashboard')); } }