Maison  >  Article  >  cadre php  >  saut de connexion Laravel

saut de connexion Laravel

WBOY
WBOYoriginal
2023-05-29 10:41:37343parcourir

En tant que framework Web PHP open source, Laravel a toujours été favorisé par les développeurs Web. Ses fonctions puissantes et sa facilité d’utilisation sont ses atouts. Pour une application Web, la connexion est l’une des fonctions les plus basiques. Dans Laravel, nous pouvons rapidement implémenter la connexion utilisateur et sauter.

Maintenant, parlons de la façon d'implémenter la connexion utilisateur et de sauter dans Laravel.

Prérequis

Avant de commencer à écrire du code, nous devons d'abord nous assurer que les conditions suivantes :

  • Avoir un environnement Laravel
  • La fonction d'authentification d'identité de Laravel a été activée.

Si vous n'avez pas activé la fonction d'authentification d'identité de Laravel, vous pouvez entrer dans le répertoire racine du projet dans le terminal et saisir la commande suivante :

php artisan make:auth

Pour les projets Laravel qui ont activé la fonction d'authentification d'identité, nous pouvons suivre les étapes suivantes sont accomplies.

Connexion utilisateur

Dans Laravel, nous pouvons obtenir le nom d'utilisateur et le mot de passe saisis par l'utilisateur via un formulaire. De manière générale, nous définirons la méthode Post dans le formulaire et la soumettrons à un contrôleur appelé LoginController, comme indiqué dans le code suivant :

<form method="POST" action="{{ route('login') }}">
    @csrf

    <div>
        <label for="email">邮箱</label>

        <div>
            <input id="email" type="email" name="email" value="{{ old('email') }}" required autocomplete="email" autofocus>
        </div>
    </div>

    <div>
        <label for="password">密码</label>

        <div>
            <input id="password" type="password" name="password" required autocomplete="current-password">
        </div>
    </div>

    <div>
        <div>
            <div>
                <input type="checkbox" name="remember" id="remember" {{ old('remember') ? 'checked' : '' }}>

                <label for="remember">
                    记住我
                </label>
            </div>
        </div>
    </div>

    <div>
        <div>
            <button type="submit">
                登录
            </button>

            @if (Route::has('password.request'))
                <a href="{{ route('password.request') }}">
                    忘记密码了?
                </a>
            @endif
        </div>
    </div>
</form>

Une fois que l'utilisateur a rempli les informations du formulaire et cliqué sur le bouton "Connexion", il sera a soumis des données dans le contrôleur LoginController.

Nous retrouvons la méthode de connexion dans le fichier app/Http/Controllers/Auth/LoginController.php et modifions le contenu de la méthode comme suit :

use IlluminateHttpRequest;

public function login(Request $request)
{
    $credentials = $request->only('email', 'password');

    if (Auth::attempt($credentials)) {
        // 认证成功后的操作
    }

    return back()->withErrors(
        ['email' => '用户名或密码错误']
    );
}

Dans le code ci-dessus, nous obtenons d'abord les données soumises par le formulaire utilisateur, c'est-à-dire l'e-mail et le mot de passe. Ensuite, nous essayons d'authentifier l'utilisateur à l'aide de la méthode Auth::attempt(). Si l'authentification de l'utilisateur réussit, des opérations de suivi sont effectuées dans l'instruction if, sinon un message d'erreur est renvoyé, informant l'utilisateur que le nom d'utilisateur ou le mot de passe est incorrect et l'interface de connexion est rechargée.

Jump

Une fois que l'utilisateur s'est connecté avec succès, nous devons le rediriger vers la page spécifiée. Dans Laravel, il existe deux méthodes d’implémentation, comme suit.

Méthode du contrôleur

Nous pouvons rediriger vers la page spécifiée en ajoutant la méthode authentifiée() dans le contrôleur LoginController. Cette méthode sera appelée automatiquement après une authentification réussie de l'utilisateur. Le code du contrôleur LoginController modifié est le suivant :

use IlluminateHttpRequest;

public function login(Request $request)
{
    $credentials = $request->only('email', 'password');

    if (Auth::attempt($credentials)) {
        return redirect()->intended('/home');
    }

    return back()->withErrors(
        ['email' => '用户名或密码错误']
    );
}

protected function authenticated(Request $request, $user)
{
    return redirect('/home');
}

Dans le code ci-dessus, nous pouvons voir la méthode authentifiée(), qui redirige l'utilisateur vers la page /home.

Méthode de routage

Nous pouvons également mettre en œuvre la redirection en enregistrant un itinéraire après une connexion réussie. Dans le fichier web.php, nous enregistrons la route suivante :

Route::get('/home', function () {
    return view('home');
})->name('home');

Route::group(['middleware' => 'auth'], function () {
    Route::get('/', function () {
        return redirect()->route('home');
    });
});

Dans le code ci-dessus, nous avons enregistré la route racine par défaut / dans le middleware d'authentification. Lorsque l'utilisateur se connecte avec succès, il sera automatiquement redirigé vers la page /home.

Résumé

Ce qui précède est la méthode de connexion de l'utilisateur et de saut dans Laravel. La fonction d'authentification d'identité fournie par Laravel nous aide grandement à mettre en œuvre rapidement la connexion des utilisateurs. Dans le même temps, grâce aux contrôleurs et au routage, nous pouvons également contrôler les sauts des utilisateurs en détail.

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