Maison  >  Article  >  cadre php  >  Comment utiliser Laravel pour vous connecter et sauter

Comment utiliser Laravel pour vous connecter et sauter

PHPz
PHPzoriginal
2023-04-19 10:07:50642parcourir

Laravel est un framework de développement PHP populaire. Il est facile à apprendre, efficace en développement, sûr et stable, et est apprécié par de nombreux développeurs. Dans Laravel, la connexion et le saut sont des opérations très courantes, et nous pouvons facilement implémenter ces fonctions.

La fonction de connexion est l'une des fonctions essentielles du site Internet, qui peut offrir aux utilisateurs un espace privé et un niveau d'accès supérieur. Dans Laravel, nous pouvons facilement implémenter la fonctionnalité de connexion. Ici, nous allons explorer comment utiliser Laravel pour implémenter la connexion et le saut.

  1. Créer un système d'authentification des utilisateurs

Tout d'abord, nous devons créer un système d'authentification des utilisateurs. Laravel nous a fourni un système d'authentification prêt à l'emploi. Il nous suffit d'exécuter la commande suivante :

php artisan make:auth

Cette commande générera automatiquement la connexion, l'enregistrement, le mot de passe oublié et d'autres fonctions, ainsi que les vues et contrôleurs correspondants pour notre utilisation.

  1. Créer une vue de connexion

Ensuite, nous devons créer une vue pour la connexion. Nous pouvons utiliser Blade, le moteur de modèles fourni par Laravel, pour créer des vues. Créez un fichier login.blade.php dans le dossier resources/views/auth. Le code est le suivant :

@extends('layouts.app')

@section('content')

<div class="container">
    <div class="row justify-content-center">
        <div class="col-md-8">
            <div class="card">
                <div class="card-header">{{ __('Login') }}</div>

                <div class="card-body">
                    <form method="POST" action="{{ route(&#39;login&#39;) }}">
                        @csrf

                        <div class="form-group row">
                            <label for="email" class="col-md-4 col-form-label text-md-right">{{ __('E-Mail Address') }}</label>

                            <div class="col-md-6">
                                <input id="email" type="email" class="form-control @error(&#39;email&#39;) is-invalid @enderror" name="email" value="{{ old(&#39;email&#39;) }}" required autocomplete="email" autofocus>

                                @error('email')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                @enderror
                            </div>
                        </div>

                        <div class="form-group row">
                            <label for="password" class="col-md-4 col-form-label text-md-right">{{ __('Password') }}</label>

                            <div class="col-md-6">
                                <input id="password" type="password" class="form-control @error(&#39;password&#39;) is-invalid @enderror" name="password" required autocomplete="current-password">

                                @error('password')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                @enderror
                            </div>
                        </div>

                        <div class="form-group row">
                            <div class="col-md-6 offset-md-4">
                                <div class="form-check">
                                    <input class="form-check-input" type="checkbox" name="remember" id="remember" {{ old(&#39;remember&#39;) ? &#39;checked&#39; : &#39;&#39; }}>

                                    <label class="form-check-label" for="remember">
                                        {{ __('Remember Me') }}
                                    </label>
                                </div>
                            </div>
                        </div>

                        <div class="form-group row mb-0">
                            <div class="col-md-8 offset-md-4">
                                <button type="submit" class="btn btn-primary">
                                    {{ __('Login') }}
                                </button>

                                @if (Route::has('password.request'))
                                    <a href="{{ route(&#39;password.request&#39;) }}">
                                        {{ __('Forgot Your Password?') }}
                                    </a>
                                @endif
                            </div>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </div>
</div>
@endsection

Dans cette vue, nous utilisons le style Bootstrap et utilisons la fonction de génération de formulaire fournie par Laravel pour générer le formulaire. De plus, nous avons également ajouté la directive @csrf au formulaire pour empêcher les attaques CSRF (cross-site request forgery).

  1. Traitement des demandes de connexion

Une fois le formulaire de connexion créé, nous devons encore traiter la demande de connexion. Nous pouvons utiliser la méthode Authenticate() fournie par Laravel dans la classe AuthLoginController pour vérifier les informations d'authentification de l'utilisateur. Si la vérification réussit, nous pouvons passer par la méthode redirect() de Laravel.

Le code est le suivant :

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

    if (Auth::attempt($credentials)) {
        // 认证通过,跳转到指定页面
        return redirect()->intended('dashboard');
    }
    else {
        // 认证失败,跳转到登录页面
        return redirect()->route('login')->with('error', 'Invalid credentials');
    }
}

Dans ce code, nous utilisons la méthode Auth::attempt() pour vérifier la saisie de l'utilisateur.

Si la vérification réussit, nous pouvons utiliser la méthode prévue() de Laravel pour sauter. Cette méthode accédera automatiquement à la page à laquelle l'utilisateur souhaite accéder. Si l'utilisateur ne le spécifie pas, elle accédera par défaut à la page « Tableau de bord ».

Si l'authentification échoue, utilisez la méthode redirect() de Laravel pour rediriger l'utilisateur vers la page de connexion et transmettre un message d'erreur lors du saut.

  1. Sauter à la page spécifiée

Dans Laravel, nous pouvons utiliser la classe Redirect et la classe URL dans Laravel pour sauter. Si nous voulons rediriger vers une route, nous pouvons utiliser la méthode redirect() de Laravel. Si nous voulons rediriger vers une URL, nous pouvons utiliser la méthode URL::to() de Laravel.

L'exemple de code est le suivant :

// 重定向到路由
return redirect()->route('dashboard');

// 重定向到URL
return redirect(URL::to('/dashboard'));

Pendant ce processus, n'oubliez pas que vous êtes libre d'utiliser la méthode de saut ci-dessus dans le contrôleur ou le fichier de routage pour accéder à la bonne page.

Conclusion

Laravel est un framework PHP puissant et facile à utiliser qui fournit de nombreux outils et fonctionnalités pour simplifier le développement Web. Dans cet article, nous apprenons comment implémenter le processus de connexion de l'utilisateur et d'accès à une page spécifiée dans Laravel.

Nous avons d'abord créé un système d'authentification utilisateur, puis créé le formulaire de connexion, traité la demande de connexion et utilisé la classe Redirect et la classe URL pour accéder au code. Ces technologies et méthodes peuvent aider les développeurs à mettre en œuvre rapidement de puissantes fonctions de connexion et de saut.

Dans le même temps, il convient de noter que la sécurité et la stabilité sont toujours une question très importante. Nous devons nous assurer que la base de code est rigoureusement testée et est conforme aux dernières normes de sécurité pour maintenir la stabilité et la sécurité du système.

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