Redirection de Laravel 5.4 vers une URL personnalisée après la connexion
Je suis à l'aide de Laravel Cadre 5.4.10, et je suis en utilisant le régulier d'authentification qui
php artisan make:auth
fournit. Je veux protéger la totalité de l'app, et de rediriger les utilisateurs vers /themes après la connexion.
J'ai 4 manettes: ForgotPasswordController.php, LoginController.php, RegisterController.php et ResetPasswordController.php. J'ai modifié cette ligne dans les trois derniers:
protected $redirectTo = '/themes';
C'est la première ligne de mon routes/web.php:
Auth::routes();
J'ai ajouté cette fonction dans mon Controller.php:
public function __construct()
{
$this->middleware('auth');
}
J'ai édité app/Http/Middleware/RedirectIfAuthenticated.php, de sorte que la poignée de la fonction ressemble à ceci:
public function handle($request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->check()) {
return redirect('/themes');
}
return $next($request);
}
Il est tout beau, sauf quand je clique sur le bouton de Connexion, j'ai redirigé vers "/", pas de "thèmes". Si je n'ai pas besoin d'authentification dans les contrôleurs (pas d' __contruct fonction dans Controller.php fichier), j'ai redirigé OK lors de la connexion. Ce que je fais mal?
source d'informationauteur ivanacorovic
Vous devez vous connecter pour publier un commentaire.
C'est ce que je suis currrently de travail, quelle coïncidence.
Vous devez également ajouter les lignes suivantes dans votre LoginController
Si vous regardez dans le AuthenticatesUsers trait que vous verrez dans la sendLoginResponse méthode qu'il y a un appel de
$this->redirectPath()
. Si vous regardez cette méthode, alors vous découvrirez que l'redirectTo peut être une méthode ou une variable.C'est ce que j'ai maintenant dans mon contrôleur de auth.
La façon dont je l'ai fait en utilisant AuthenticatesUsers trait.
\App\Http\Controllers\Auth\LoginController.php
Ajouter cette méthode pour que contrôleur:
Vous devez définir $redirectTo valeur de l'itinéraire que vous souhaitez rediriger
à l'intérieur de l'action authcontroller constructeur.
vous pouvez ajouter une méthode dans LoginController ajouter la ligne
use App\User;
sur le Dessus, après cette méthode add, c'est un travail pour moi wkwkwkwkw , mais vous devez ajouter{{ csrf_field() }}
sur la vue admin et utilisateur