Maison >cadre php >Laravel >Sauter après la connexion à Laravel

Sauter après la connexion à Laravel

王林
王林original
2023-05-29 14:15:37625parcourir

L'authentification de connexion utilisateur est une fonctionnalité essentielle lors du développement d'applications Web. Le framework Laravel offre diverses façons de mettre en œuvre l'authentification des utilisateurs et fournit également un système d'authentification d'identité par défaut (à savoir LaravelIlluminateAuth) pour permettre aux développeurs de mettre en œuvre plus facilement l'enregistrement, la connexion, la déconnexion des utilisateurs et d'autres fonctions dans l'application.

Après une authentification de connexion réussie, nous souhaitons souvent accéder à une page spécifique, telle que la page de profil de l'utilisateur ou une page de fonction spécifique. Dans le framework Laravel, il est très simple d'implémenter un saut après la connexion.

Cet article présentera plusieurs façons permettant aux utilisateurs de sauter après s'être connectés au framework Laravel.

Le saut de connexion par défaut du framework Laravel

Le système d'authentification d'identité fourni par LaravelIlluminateAuth est configuré par défaut avec un saut après la connexion de l'utilisateur. Dans le fichier de configuration config/auth.php, il y a la configuration par défaut suivante :

'redirect' => [
    'login' => '/login',
    'logout' => '/logout',
    'home' => '/home',
    'register' => '/register',
    'verify' => '/email/verify',
    'reset' => '/password/reset',
    'confirm' => '/password/confirm',
  ],

Parmi elles, 'home' représente la page de saut après la connexion, et la valeur par défaut est le chemin /home. Si vous devez modifier la page de renvoi par défaut, il vous suffit de modifier le chemin d'accès à la page souhaitée.

Spécifiez manuellement le chemin de saut

Si vous devez spécifier manuellement la page de saut après la connexion dans le contrôleur, nous pouvons utiliser l'instance RedirectResponse fournie par le framework Laravel et l'implémenter via la méthode redirect().

Par exemple, dans le contrôleur utilisateur, nous pouvons remplacer la méthode Authenticated() dans le trait IlluminateFoundationAuthAuthenticatesUsers :

use IlluminateSupportFacadesAuth;

class UserController extends Controller
{
    use AuthenticatesUsers;

    protected function authenticated(Request $request, $user)
    {
        return redirect()->route('user.show', $user->id);
    }
}

Le code ci-dessus peut accéder à la page de profil utilisateur spécifiée une fois que l'utilisateur s'est connecté avec succès.

Redirection vers la page précédente

Parfois, nous devons définir le chemin de saut une fois que l'utilisateur s'est connecté à la page avant de se connecter. Vous pouvez utiliser la fonction session() et la méthode URL::previous() fournies par Laravel.

Par exemple, dans le contrôleur de connexion, nous pouvons l'implémenter comme ceci :

use IlluminateHttpRequest;
use IlluminateSupportFacadesAuth;
use IlluminateSupportFacadesURL;

class LoginController extends Controller
{
    public function login(Request $request)
    {
        $credentials = $request->only('email', 'password');
        if (Auth::attempt($credentials)) {
            return redirect()->intended(URL::previous());
        }
        return back()->withErrors(['email' => '登录失败']);
    }
}

Dans le code ci-dessus, nous utilisons la méthode redirect()->intended(), qui redirigera l'utilisateur vers la page visitée avant de se connecter dans . Si l'utilisateur n'a jamais visité d'autres pages auparavant, il sera redirigé vers le chemin de connexion par défaut.

Utilisez un middleware pour accéder à la page spécifiée

Le middleware du framework Laravel fournit des fonctions pratiques d'authentification et d'autorisation d'identité. Nous pouvons spécifier le chemin de saut après la connexion dans un middleware.

Par exemple, nous pouvons configurer le chemin de saut après la connexion dans le middleware d'authentification :

namespace AppHttpMiddleware;

use IlluminateAuthMiddlewareAuthenticate as Middleware;

class Authenticate extends Middleware
{
    protected function redirectTo($request)
    {
        if (! $request->expectsJson()) {
            return route('login'); // 设置默认的跳转路径
        }
    }
}

Dans le code ci-dessus, nous utilisons la méthode redirectTo() pour gérer les demandes de connexion ayant échoué. Si la requête doit renvoyer des données au format json, une erreur 401 sera renvoyée directement, sinon l'utilisateur sera redirigé vers la page de connexion ;

Si vous devez spécifier d'autres chemins de saut, il vous suffit de modifier l'alias de routage dans l'instruction return.

Résumé

Ci-dessus sont plusieurs façons d'implémenter le saut après la connexion de l'utilisateur dans le framework Laravel. La méthode spécifique choisie dépend des besoins réels du développeur et des scénarios de développement. Quelle que soit la méthode utilisée, elle peut nous aider à réaliser la fonction d'authentification de l'utilisateur et à passer après la connexion de manière pratique et rapide.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn