The error is possibly in your logic
redirection after authenticate
"I have a page that I want to protect by applying the auth middleware to the route of this page. I configured an AuthGestionnaireController so that once a user is authenticated, they are redirected to this protected page, but after authentication, I am still redirected to the login page. I have checked all possible errors, but I can't find any."
<?php
namespace App\Http\Controllers;
use App\Http\Requests\GestAuthRequest; // Vérifie le nom de la classe pour la bonne casse
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
class Authgestionnaire extends Controller
{
public function logingestionnaire()
{
return view('Authgestionnaire.login');
}
public function dologin(GestAuthRequest $request)
{
// Valider les informations d'identification
$credentials = $request->validated();
// Essayer d'authentifier l'utilisateur
if (Auth::attempt(['email' => $credentials['email'], 'password' => $credentials['password']])) {
// Regénérer la session pour éviter la fixation de session
dd('Authenticated: ',Auth::attempt(),session()->all(), Auth::user());
$request->session()->regenerate();
// Rediriger vers la route prévue après une connexion réussie
return redirect()->intended(route('gest.base'))->with('success', 'Vous êtes maintenant connecté');
}
// Si l'authentification échoue
return redirect()->route('login')->withErrors([
'login' => 'Les informations d\'identification fournies ne correspondent pas à nos enregistrements.',
]);
}
public function logout()
{
Auth::logout();
return redirect()->route('login')->with('success', 'Vous êtes maintenant déconnecté');
}
}
<?php
use App\Http\Controllers\AFFICHAGE\AffichageController;
use App\Http\Controllers\Authgestionnaire;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\gestdemintcontroller;
Route::middleware(['web'])->group(function () {
// Routes publiques
Route::get('/', [AffichageController::class, 'pageacceuil'])->name('acceuil');
Route::get('/usagerministère', [AffichageController::class, 'demandeAgministere'])->name('usager.interne');
Route::get('/usagerexterne', [AffichageController::class, 'demandeAgext'])->name('usager.externe');
Route::post('/demandereussir', [gestdemintcontroller::class, 'demsave'])->name('demex.save');
// Routes protégées par authentification
Route::prefix('/gestionnaire')->name('gest.')->controller(AffichageController::class)->group(function(){
Route::get('/pb', 'offgesto')->name('base')->middleware('auth');
});
// Route de connexion
Route::get('/login', [Authgestionnaire::class, 'logingestionnaire'])->name('login');
Route::post('/login', [Authgestionnaire::class, 'dologin'])->name('login.process');
Route::post('/logout', [Authgestionnaire::class, 'logout'])->name('deco.gestionnaire');
});
@Snapey look at my code please
@youyass Why are you specifying the web middleware? Have you disabled it as default middleware?
"dd()" will stop execution of your code
@Devio yes i know
I did test your code, and i get this error: Target class [App\Http\Controllers\AFFICHAGE\AffichageController] does not exist.
@frankhosaka how can you 'test his code' with only a small piece of the web.php ?
@Snapey hello, no I did not disable the web middleware I had so many more solutions that I said to myself why not do it
@youyass you do not want to be running web middleware twice
@Snapey I took it off my roads
@Snapey but with my codes that I sent before what can you advise me to solve my problem
@Devio i did it
@Devio when you check my codes can you know if there is errors
@youyass It seems ok. maybe you are not using redirect->intended(route('default')) correctly.
try:
if (!Auth::attempt($request->only(['email','password']))
return redirect()->route('login')->withErrors(['message'=>'Invalid Credentials']);
$request->session()->regenerate();
return redirect()->route('base'));
@Devio okay i try with that
@Devio it doesn't work
@youyass are you using form request validation?
@Devio yes i said you i checked all and there are no issues
Please or to participate in this conversation.