xxxxxxxxxx
'password' => 'bail'|'required'|'min:6'|'regex:/^.*(?=.{3,})(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[\d\x])(?=.*[!$#%]).*$/',
xxxxxxxxxx
//User User model
use App\User;
//Select user data form database
$user = User::where('username', $request->username)->first();
//Check password hash
if(!$user || !Hash::check($request->password, $user->password)){
//Invalid login username or password!
} else {
//username & password matches
}
xxxxxxxxxx
'password' => 'required|
min:6|
regex:/^.*(?=.{3,})(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[\d\x])(?=.*[!$#%]).*$/|
confirmed',
xxxxxxxxxx
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Rules\MatchOldPassword;
use Illuminate\Support\Facades\Hash;
use App\User;
class ChangePasswordController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth');
}
/**
* Show the application dashboard.
*
* @return \Illuminate\Contracts\Support\Renderable
*/
public function index()
{
return view('changePassword');
}
/**
* Show the application dashboard.
*
* @return \Illuminate\Contracts\Support\Renderable
*/
public function store(Request $request)
{
$request->validate([
'current_password' => ['required', new MatchOldPassword],
'new_password' => ['required'],
'new_confirm_password' => ['same:new_password'],
]);
User::find(auth()->user()->id)->update(['password'=> Hash::make($request->new_password)]);
dd('Password change successfully.');
}
}
xxxxxxxxxx
use Illuminate\Support\Facades\Validator;
use Illuminate\Validation\Rules\Password;
$validator = Validator::make($request->all(), [
'password' => ['required', 'confirmed', Password::min(8)],
]);
xxxxxxxxxx
<?php
namespace App\Rules;
use Illuminate\Contracts\Validation\Rule;
use Illuminate\Support\Facades\Hash;
class MatchOldPassword implements Rule
{
/**
* Determine if the validation rule passes.
*
* @param string $attribute
* @param mixed $value
* @return bool
*/
public function passes($attribute, $value)
{
return Hash::check($value, auth()->user()->password);
}
/**
* Get the validation error message.
*
* @return string
*/
public function message()
{
return 'The :attribute is match with old password.';
}
}
xxxxxxxxxx
public function PostResetPassword($token, Request $request)
{
if ($request->password === $request->password2)
{
$this->validate($request, [
'password' => 'required|min:12|max:255',
'password2' => 'required|min:12|max:255',
], [
'password.min' => 'Your password must be at least 12 characters long.',
'password2.min' => 'Your password must be at least 12 characters long.',
]);
// Check if password is at least 12 characters long
if (strlen($request->password) < 12) {
return redirect()->back()->with('error', 'Your password must be at least 12 characters long.');
}
$user = User::getTokenSingle($token);
$user->password = Hash::make($request->password);
$user->remember_token = Str::random(60);
$user->reset_token = null;
$user->save();
return redirect()->intended(url('auth/login'))->with('success', 'Your password has been changed successfully');
}
else
{
return redirect()->back()->with('error', "Your passwords don't match");
}
}