سلام من در پروژم همه چیز به خوبی پیش میرفت تا اینکه در بخش لاگ این جدیدا که وارد میکنم ایمیل و رمز رو وارد نمیشه و ارور عدم همخوانی میده به من ! ولی رجیستر به درستی کار میکنه یکم عجیبه چون تا چند وقت پیش کار میکرد!!! کسی از دوستان میدونه علت چیه؟ forget password هم میزنم ادکیم یشه رمز جدید ثبت میکنم ولی وقتی لاگ اوتمیکنم بار میخوام وارد شم این ارور رو میده !! سایر قسمت ها به درستی کار میکنه
کد های بخش لاگ این کنترلر
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Models\User;
use App\Providers\RouteServiceProvider;
use App\Rules\Recaptcha;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use function GuzzleHttp\Promise\all;
class LoginController extends Controller
{
/*
|--------------------------------------------------------------------------
| Login Controller
|--------------------------------------------------------------------------
|
| This controller handles authenticating users for the application and
| redirecting them to your home screen. The controller uses a trait
| to conveniently provide its functionality to your applications.
|
*/
use AuthenticatesUsers ,TwoFactorAuthenticate;
/**
* Where to redirect users after login.
*
* @var string
*/
protected $redirectTo = RouteServiceProvider::HOME;
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest')->except('logout');
}
protected function authenticated(Request $request, $user)
{
return $this->loggendin($request , $user);
}
protected function validateLogin(Request $request)
{
$request->validate([
$this->username() => 'required|string',
'password' => 'required|string',
'g-recaptcha-response' => ['required' , new Recaptcha()]
],[
'g-recaptcha-response.required' => 'لطفا روی من ربات نیستم کلیک کنید'
]);
}
public function showLoginForm()
{
if (!session()->has('url.intended')){
session(['url:intended'=>url()->previous()]);
}
return view('auth.login');
}
}
بخش AuthenticatesUsers.php
<?php
namespace Illuminate\Foundation\Auth;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Validation\ValidationException;
trait AuthenticatesUsers
{
use RedirectsUsers, ThrottlesLogins;
/**
* Show the application's login form.
*
* @return \Illuminate\View\View
*/
public function showLoginForm()
{
return view('auth.login');
}
/**
* Handle a login request to the application.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\RedirectResponse|\Illuminate\Http\Response|\Illuminate\Http\JsonResponse
*
* @throws \Illuminate\Validation\ValidationException
*/
public function login(Request $request)
{
$this->validateLogin($request);
// If the class is using the ThrottlesLogins trait, we can automatically throttle
// the login attempts for this application. We'll key this by the username and
// the IP address of the client making these requests into this application.
if (method_exists($this, 'hasTooManyLoginAttempts') &&
$this->hasTooManyLoginAttempts($request)) {
$this->fireLockoutEvent($request);
return $this->sendLockoutResponse($request);
}
if ($this->attemptLogin($request)) {
return $this->sendLoginResponse($request);
}
// If the login attempt was unsuccessful we will increment the number of attempts
// to login and redirect the user back to the login form. Of course, when this
// user surpasses their maximum number of attempts they will get locked out.
$this->incrementLoginAttempts($request);
return $this->sendFailedLoginResponse($request);
}
/**
* Validate the user login request.
*
* @param \Illuminate\Http\Request $request
* @return void
*
* @throws \Illuminate\Validation\ValidationException
*/
protected function validateLogin(Request $request)
{
$request->validate([
$this->username() => 'required|string',
'password' => 'required|string',
]);
}
/**
* Attempt to log the user into the application.
*
* @param \Illuminate\Http\Request $request
* @return bool
*/
protected function attemptLogin(Request $request)
{
return $this->guard()->attempt(
$this->credentials($request), $request->filled('remember')
);
}
/**
* Get the needed authorization credentials from the request.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
protected function credentials(Request $request)
{
return $request->only($this->username(), 'password');
}
/**
* Send the response after the user was authenticated.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\RedirectResponse|\Illuminate\Http\JsonResponse
*/
protected function sendLoginResponse(Request $request)
{
$request->session()->regenerate();
$this->clearLoginAttempts($request);
if ($response = $this->authenticated($request, $this->guard()->user())) {
return $response;
}
return $request->wantsJson()
? new JsonResponse([], 204)
: redirect()->intended($this->redirectPath());
}
/**
* The user has been authenticated.
*
* @param \Illuminate\Http\Request $request
* @param mixed $user
* @return mixed
*/
protected function authenticated(Request $request, $user)
{
}
/**
* Get the failed login response instance.
*
* @param \Illuminate\Http\Request $request
* @return \Symfony\Component\HttpFoundation\Response
*
* @throws \Illuminate\Validation\ValidationException
*/
protected function sendFailedLoginResponse(Request $request)
{
throw ValidationException::withMessages([
$this->username() => [trans('auth.failed')],
]);
}
/**
* Get the login username to be used by the controller.
*
* @return string
*/
public function username()
{
return 'email';
}
/**
* Log the user out of the application.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\RedirectResponse|\Illuminate\Http\JsonResponse
*/
public function logout(Request $request)
{
$this->guard()->logout();
$request->session()->invalidate();
$request->session()->regenerateToken();
if ($response = $this->loggedOut($request)) {
return $response;
}
return $request->wantsJson()
? new JsonResponse([], 204)
: redirect('/');
}
/**
* The user has logged out of the application.
*
* @param \Illuminate\Http\Request $request
* @return mixed
*/
protected function loggedOut(Request $request)
{
//
}
/**
* Get the guard to be used during authentication.
*
* @return \Illuminate\Contracts\Auth\StatefulGuard
*/
protected function guard()
{
return Auth::guard();
}
}
ویو لاگ این
@extends('layouts.app')
@section('script')
<script src="https://www.google.com/recaptcha/api.js?hl=fa" async defer ></script>
@endsection
@section('content')
<div class="container">
<div class="row justify-content-center">
<div class="col-md-8">
<div class="card">
<div class="card-header d-flex justify-content-center">{{ __('ورود') }}</div>
<div class="card-body">
<div class="text-center">
<a href="{{route('auth.google')}}"><img src="/img/google.png" height="100px" width="100px" class="rounded mb-3" alt="GoogleLogin" >
</a>
<p>ورود با گوگل</p>
</div>
<form method="POST" action="{{ route('login') }}">
@csrf
<div class="form-group row">
<label for="email" class="col-md-4 col-form-label text-md-right">{{ __('ایمیل') }}</label>
<div class="col-md-6">
<input id="email" type="email" class="form-control @error('email') is-invalid @enderror" name="email" value="{{ old('email') }}" required autocomplete="email" autofocus>
@error('email')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<div class="form-group row">
<label for="password" class="col-md-4 col-form-label text-md-right">{{ __('پسورد') }}</label>
<div class="col-md-6">
<input id="password" type="password" class="form-control @error('password') is-invalid @enderror" name="password" required autocomplete="current-password">
@error('password')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<div class="form-group row">
<div class="col-md-6 offset-md-4">
<div class="form-check">
<input class="form-check-input" type="checkbox" name="remember" id="remember" {{ old('remember') ? 'checked' : '' }}>
<label class="form-check-label" for="remember">
{{ __('به خاطره بسپار') }}
</label>
</div>
</div>
</div>
<div class="form-group col-md-8 offset-md-4 mb-3 ">
<x-recaptcha :has-error="$errors->has('g-recaptcha-response')" />
@error('g-recaptcha-response')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
<div class="form-group row mb-0">
<div class="col-md-8 offset-md-4">
<button type="submit" class="btn btn-primary">
{{ __('ورود') }}
</button>
@if (Route::has('password.request'))
<a class="btn btn-link" href="{{ route('password.request') }}">
{{ __('پسورد خود را فراموش کردید؟') }}
</a>
@endif
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
@endsection
@hesammousavi
@ali.bayat
@muhamad
@gomnam
@mhyeganeh
@hekmati
سلام
بررسی کنید ببینید یک وقت fresh OR refresh ووو... از migrate انجام ندادید ؟
بررسی کنید ببینید خوب رمز عبور و ایمیل وجود دارد اصلا ؟
من که تو کد ها مشکلی ندیدم .
اول اینکه من درست متوجه نشدم منظورتون از «ورود با گوگل» چیه. معمولا این عنوان برای مواقعی استفاده میشه که از سرویس گوگل برای لاگین استفاده میشه. ولی شما دارید بصورت ساده ایمیل و پسورد میگیرید...
در هر صورت اول برید سراغ دیتابیس و مطمئن بشید که اکانتی با ایمیل مورد نظر وجود داره. بعد با استفاده از یک ابزاری مثل این یک پسورد جدید رو رمزنگاری کنید و بصورت دستی در فیلد پسورد قرار بدید.
بعد عینا دو مورد قبلی رو از دیتابیس کپی و در فرم لاگین پیست کنید و سابمیت کنید.
تا اینجا مطمئن میشیم که اشتباهی در ثبت اطلاعات وجود نداشته (موضوعی که بیش از ۷۰ درصد مواقع علت چنین قضایایی هست 😅)
اگر باز هم اوکی نشد متن ارور رو دقیق بررسی کنید. همچنین یک سر به log های ثبت شده بزنید و مطمئن بشید ارور منطقی در کدهاتون وجود نداشته باشه. همچنین مطمئن بشید که سیستم Auth تون از ایمیل بعنوان نام کاربری استفاده میکنه. چون امکان تغییرش به موارد دیگه ای مثل شماره موبایل و usrename و ... هم وجود داره.
در نهایت هم در قسمت های مختلفی از کدتون dd بگیرید یا Log ثبت کنید تا متوجه بشید در هر مرحله ای چه داده هایی به فانکشن های مربوطه مثلا attemptLogin پاس داده میشود و آیا همون مواردی هستند که شما انتظارش رو داشتید یا خیر...
@gomnam سلام فرش و رفرش اعمال نشده دیتا بیس هم اوکیه میگم خیلی اتفاقی این مشکل به وجود اومده ولقعا دلیلشو نمیدونم همه قسمتا درست کار میکنن الا این قسمت لاگ این کردن یه جا خونده بودم شاید مرتبط به composer update باشه ین مشکل ولی یادم نمیاد استفاده کرده باشم گفتم ببینم دوستانی که تجربه بیشتری دارن تو این زمینه شاید اطلاعات دقیق تری داشته باشن از این ارور
@mhyeganeh سلام جناب یگانه ممنون از متنتون ببینید همه موارد رو طی کردم هیچ مشکلی توی دیتا بیس و اطلاعات وارد شده نیست واقعا این مورد برای من عجیبه نمیدونم علتش چیه چون من تغییراتی داخل خود پکیج قرار ندادم dd گرفتم توی متد لاگ این ولیدیت به درستی انجام میشه ولی عدم همخوانی میزنه توی بخش کد نمیدونم دلیلش چیه بعد یه سوال به نظرتون پکیج رو یه بار دیگه دلیت کنم دوباره نصب کنم یا کار اشتبهایه به نظرتون ؟ کل برنامم البته به هم میریزه بخش های زیادی پیاده کردم 😑😑
یه موردی هم هست نمیدونم شاید به اونم مربوط باشه من الان نگاه کردم ورژن لاراول ui من 3.3 هست دقیقا آخرین ورژنی هست که موجوده میتونه مربوط به باگ های ورژن جدید باشه به ورژن های قدیمی تر برگردونم؟!
هر چقدر گشتم این مورد مشابه رو گیر آوردم که 4 سال پیش به این مشکل برخورده راه حلی ام ارائه ندادن😑😑
@gomnam @mhyeganeh @ilya2019.r @kazemi @ali.bayat @hesammousavi @
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟