Je souhaite créer un système de connexion simple et j'en ai créé un, mais les informations de connexion sont erronées. Ma tentative de faire un test de vidage renvoie null. Voir le test dd dans les commentaires. Pour cette raison, je ne peux pas me déconnecter
Mon contrôleur de connexion est :
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use App\Models\User; use Validator; class LoginController extends Controller { public function index() { return view('login'); } public function store(Request $request) { $this->validate($request, [ 'email' => 'required|email', 'password' => 'required|alphaNum|min:3' ]); $user_data = array( 'email' => $request->get('email'), 'password' => $request->get('password') ); //$user = Auth::user(); //dd($user); I have done dump test but it is returning null if(Auth::attempt($user_data)) { return redirect()->route('welcome'); } else { return back()->with('error','wrong Login Details'); } } }
Ma lame de connexion est
@if ($message = Session::get('error')) <div class="alert alert-danger alert-block"> <button type="button" class="close" data-dismiss="alert">×</button> <strong>{{ $message }}</strong> </div> @endif @if (count($errors) > 0) <div class="alert alert-danger"> <ul> @foreach($errors->all() as $error) <li>{{ $error }}</li> @endforeach </ul> </div> @endif <form action="{{route('login.save')}}" style="border:1px solid #ccc" method="post"> {{ csrf_field() }} <div class="container"> <h1>Login</h1> <p>Please fill in this form to Login</p> <hr> <label for="email"><b>Email</b></label> <input type="text" placeholder="Enter Email" name="email" value="{{old('name')}}" > @error('email') {{$message}} @enderror <label for="psw"><b>Password</b></label> <input type="password" placeholder="Enter Password" name="password" > @error('password') {{$message}} @enderror <label for="psw-repeat"><b>Repeat Password</b></label> <input type="password" placeholder="Repeat Password" name="psw-repeat" > <div class="clearfix"> <button type="submit" class="signupbtn">Log in</button> </div> </div> </form> </body> </html>
Le routage réseau est
Route::get('/register','App\Http\Controllers\RegisterController@index')->name('register'); Route::post('/register/save','App\Http\Controllers\RegisterController@store')->name('register.save'); Route::get('/login','App\Http\Controllers\LoginController@index')->name('login'); Route::post('/login/save','App\Http\Controllers\LoginController@store')->name('login.save'); Route::get('/welcome','App\Http\Controllers\LogoutController@store')->name('logout');
Essayez de déboguer votre code
1- Vérifiez la base de données après l'inscription. Votre mot de passe est-il crypté ?
2-Lors de la soumission du formulaire dd($request->all()) Si tout se passe bien
3- Auth::attempt($request->only('email', 'password'))
J'espère que cette réponse vous aidera à déboguer votre code.