fix: login with username or email added.

This commit is contained in:
2023-12-21 05:16:15 +00:00
parent a156a44130
commit ca34ab4b37
3 changed files with 50 additions and 4 deletions

View File

@@ -2,12 +2,14 @@
namespace App\Http\Requests\Auth;
use App\Models\User;
use Illuminate\Auth\Events\Lockout;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\RateLimiter;
use Illuminate\Support\Str;
use Illuminate\Validation\ValidationException;
use Illuminate\Support\Facades\Hash;
class LoginRequest extends FormRequest
{
@@ -27,7 +29,7 @@ class LoginRequest extends FormRequest
public function rules(): array
{
return [
'email' => ['required', 'string', 'email'],
'login' => ['required', 'string'],
'password' => ['required', 'string'],
];
}
@@ -41,6 +43,8 @@ class LoginRequest extends FormRequest
{
$this->ensureIsNotRateLimited();
/*
if (! Auth::attempt($this->only('email', 'password'), $this->boolean('remember'))) {
RateLimiter::hit($this->throttleKey());
@@ -48,7 +52,20 @@ class LoginRequest extends FormRequest
'email' => trans('auth.failed'),
]);
}
*/
$user = User::where('email', $this->login)
->orWhere('name', $this->login)
->first();
if (!$user || !Hash::check($this->password, $user->password)) {
RateLimiter::hit($this->throttleKey());
throw ValidationException::withMessages([
'login' => __('auth.failed'),
]);
}
Auth::login($user, $this->boolean('remember'));
RateLimiter::clear($this->throttleKey());
}