Maison > cadre php > Laravel > le corps du texte

Exemples pour expliquer comment Laravel implémente les fonctions de connexion et d'enregistrement

PHPz
Libérer: 2023-04-12 09:26:04
original
2233 Les gens l'ont consulté

Laravel est un framework PHP très populaire. Il présente les avantages de simplicité, de facilité d'utilisation, d'efficacité, de stabilité, de sécurité et de fiabilité, et est largement utilisé dans le développement d'applications Web. Dans le développement d'applications Web, les fonctions de connexion et d'enregistrement sont essentielles, alors comment utiliser Laravel pour implémenter les fonctions de connexion et d'enregistrement ? Cet article vous le présentera en détail.

1. Installez Laravel

Avant d'utiliser Laravel pour développer, vous devez d'abord installer Laravel via composer et utiliser la commande suivante :

composer create-project --prefer-dist laravel/laravel project_name
Copier après la connexion

Une fois l'installation terminée, entrez le répertoire où se trouve le projet. et exécutez la commande suivante pour démarrer le service Laravel :

php artisan serve
Copier après la connexion

2. Créez un modèle utilisateur et une table de données

Dans Laravel, vous pouvez facilement utiliser Eloquent ORM pour gérer les opérations de base de données. Nous devons créer un modèle utilisateur et une table de données.

  1. Créer un modèle utilisateur

Créer un modèle dans Laravel est très pratique, utilisez simplement la commande suivante sur la ligne de commande :

php artisan make:model User
Copier après la connexion

Un fichier User.php sera généré dans le répertoire de l'application, qui est le modèle utilisateur. Laravel définira le nom de la table au pluriel du modèle par défaut, nous devons donc définir le nom de la table dans le modèle User comme suit :

class User extends Model
{
    protected $table = 'users';
}
Copier après la connexion

2 Créer une table de données d'utilisateurs

Créez une table d'utilisateurs dans la base de données et exécutez le. commande suivante pour créer la migration :

php artisan make:migration create_users_table --create=users
Copier après la connexion

Un fichier de migration sera généré dans le répertoire database/migrations, comme indiqué ci-dessous :

class CreateUsersTable extends Migration
{
    public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->increments('id');
            $table->string('name');
            $table->string('email')->unique();
            $table->timestamp('email_verified_at')->nullable();
            $table->string('password');
            $table->rememberToken();
            $table->timestamps();
        });
    }

    public function down()
    {
        Schema::dropIfExists('users');
    }
}
Copier après la connexion

Exécutez la commande suivante pour générer la table de données :

php artisan migrate
Copier après la connexion

3. package pour créer une authentification utilisateur

Laravel fournit un package laravel/ui qui peut être utilisé pour créer des systèmes d'authentification utilisateur. Utilisez d'abord la commande suivante pour installer le package laravel/ui :

composer require laravel/ui
Copier après la connexion

Une fois l'installation terminée, exécutez la commande suivante pour créer un système d'authentification utilisateur :

php artisan ui vue --auth
Copier après la connexion

La fonction de cette commande est de créer les vues de connexion et d'enregistrement par défaut du framework front-end Vue.js. Une fois l'exécution terminée, vous constaterez qu'il existe un dossier auth dans le répertoire resources/views, comprenant deux fichiers de vue auth/login.blade.php et auth/register.blade.php.

4. Définir le routage

Dans Laravel, le routage est un mécanisme qui lie les URL aux méthodes du contrôleur. Nous devons configurer le routage afin de pouvoir accéder aux pages de connexion et d'inscription.

Dans le fichier routes/web.php, ajoutez la définition de route suivante :

Route::get('/login', 'Auth\LoginController@showLoginForm')->name('login');
Route::post('/login', 'Auth\LoginController@login');
Route::get('/register', 'Auth\RegisterController@showRegistrationForm')->name('register');
Route::post('/register', 'Auth\RegisterController@register');
Copier après la connexion

Ces routes appelleront respectivement les méthodes dans AuthLoginController et AuthRegisterController par défaut de Laravel.

5. Authentification personnalisée des utilisateurs

Dans les applications pratiques, nous devons souvent personnaliser l'authentification des utilisateurs pour répondre aux besoins de l'entreprise. Voici les étapes pour personnaliser l'authentification des utilisateurs :

  1. Créer les contrôleurs LoginController et RegisterController

Nous devons créer les contrôleurs LoginController et RegisterController dans le répertoire app/Http/Controllers/Auth, le code est le suivant :

class LoginController extends Controller
{
    protected function validator(array $data)
    {
        return Validator::make($data, [
            'email' => 'required|email',
            'password' => 'required|min:6'
        ]);
    }

    public function showLoginForm()
    {
        return view('auth.login');
    }

    public function login(Request $request)
    {
        $validator = $this->validator($request->all());
        if ($validator->fails()) {
            return redirect('/login')
                        ->withErrors($validator)
                        ->withInput();
        }

        if (Auth::attempt(['email' => $request->email, 'password' => $request->password])) {
            return redirect('/');
        } else {
            return redirect('/login')
                        ->withErrors(['email' => '邮箱或密码错误'])
                        ->withInput();
        }
    }
}
Copier après la connexion
class RegisterController extends Controller
{
    protected function validator(array $data)
    {
        return Validator::make($data, [
            'name' => 'required|max:255',
            'email' => 'required|email|unique:users',
            'password' => 'required|min:6|confirmed',
        ]);
    }

    public function showRegistrationForm()
    {
        return view('auth.register');
    }

    public function register(Request $request)
    {
        $validator = $this->validator($request->all());
        if ($validator->fails()) {
            return redirect('/register')
                        ->withErrors($validator)
                        ->withInput();
        }

        $user = User::create([
            'name' => $request['name'],
            'email' => $request['email'],
            'password' => bcrypt($request['password']),
        ]);

        Auth::login($user);
        
        return redirect('/');
    }
}
Copier après la connexion

Dans la coutume Dans le contrôleur, la méthode du validateur est utilisée pour vérifier la légitimité des données saisies par l'utilisateur et gérer les erreurs lors du processus de connexion ou d'enregistrement.

  1. Modifier le routage

Modifier le routage d'origine avec le code suivant :

Route::get('/login', 'LoginController@showLoginForm')->name('login');
Route::post('/login', 'LoginController@login');
Route::get('/register', 'RegisterController@showRegistrationForm')->name('register');
Route::post('/register', 'RegisterController@register');
Copier après la connexion

De cette façon, le code a été modifié et écrit en fonction de nos propres besoins, et les fonctions de connexion et d'enregistrement suffisent.

6. Résumé

Cet article détaille les étapes d'utilisation de Laravel pour implémenter la connexion et l'enregistrement des utilisateurs, y compris la création de modèles d'utilisateur et de tables de données, l'utilisation du package laravel/ui pour créer un système d'authentification utilisateur par défaut, la définition du routage et la personnalisation de l'utilisateur. authentification. Qu'il s'agisse de la version de base ou de la version personnalisée, l'utilisation de Laravel est très pratique et l'efficacité du développement a également été grandement améliorée. Si vous êtes un développeur PHP, autant essayer Laravel.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal