Laravel est un framework PHP couramment utilisé avec une syntaxe élégante, des fonctions puissantes et une documentation riche. Il est devenu le framework de choix pour de nombreux développeurs PHP. Cet article expliquera comment utiliser le framework Laravel pour implémenter les fonctions d'enregistrement et de connexion.
1. Créer une application Laravel
Avant de commencer à implémenter les fonctions d'enregistrement et de connexion, vous devez d'abord créer une application Laravel. Vous pouvez utiliser la commande Composer officiellement fournie par Laravel pour créer une nouvelle application, comme indiqué ci-dessous :
composer create-project --prefer-dist laravel/laravel your-project-name
Où, votre-nom-de-projet
est le nom de l'application que vous souhaitez créer. your-project-name
是你想要创建的应用程序的名称。
创建完成后,进入应用程序目录并启动本地服务器:
cd your-project-name php artisan serve
在浏览器中输入http://localhost:8000
,即可访问应用程序的欢迎页面。
二、创建认证系统
在实现注册和登录功能之前,需要先创建一个基本的认证系统。Laravel提供了make:auth
Artisan命令,可以快速生成认证相关的视图和控制器。
php artisan make:auth
执行上述命令后,Laravel会自动创建register
、login
和logout
等相关的视图和控制器,并将它们添加到应用程序中。此外,Laravel还会在数据库中创建相关的用户和密码重置表。
三、创建数据库表
默认情况下,Laravel使用MySQL数据库。在本例中,需要创建一个名为users
的数据表来存储用户数据。可以使用以下Artisan命令来创建该表:
php artisan make:migration create_users_table --create=users
执行上述命令后,Laravel会在应用程序的database/migrations
目录中创建一个名为create_users_table
的迁移文件。打开该文件并修改up
方法,如下所示:
public function up() { Schema::create('users', function (Blueprint $table) { $table->bigIncrements('id'); $table->string('name'); $table->string('email')->unique(); $table->timestamp('email_verified_at')->nullable(); $table->string('password'); $table->rememberToken(); $table->timestamps(); }); }
上述迁移文件定义了users
数据表的字段,包括name
(用户名)、email
(电子邮件地址)、password
(密码)等等。
在修改完迁移文件之后,需要执行以下Artisan命令,来实际创建users
数据表:
php artisan migrate
四、创建注册页面
接下来,需要创建一个注册页面,让用户可以输入自己的用户名、电子邮件地址和密码。打开resources/views/auth/register.blade.php
文件,可以看到Laravel已经为我们创建了一个基本的注册表单。
此时,我们需要删除一些字段,同时增加必须填写的name
字段和确认密码password_confirmation
字段。修改后的代码如下所示:
<form method="POST" action="{{ route('register') }}"> @csrf <div> <label for="name">{{ __('Name') }}</label> <div> <input id="name" type="text" name="name" value="{{ old('name') }}" required autofocus> </div> </div> <div> <label for="email">{{ __('E-Mail Address') }}</label> <div> <input id="email" type="email" name="email" value="{{ old('email') }}" required> </div> </div> <div> <label for="password">{{ __('Password') }}</label> <div> <input id="password" type="password" name="password" required> </div> </div> <div> <label for="password-confirm">{{ __('Confirm Password') }}</label> <div> <input id="password-confirm" type="password" name="password_confirmation" required> </div> </div> <div> <button type="submit"> {{ __('Register') }} </button> </div> </form>
五、处理注册请求
现在,注册表单已经创建,但是当用户提交表单时并不会生效。所以我们需要修改app/Http/Controllers/Auth/RegisterController.php
文件来处理注册请求。
public function store(Request $request) { $this->validate($request, [ 'name' => 'required|string|max:255', 'email' => 'required|string|email|unique:users|max:255', 'password' => 'required|string|min:8|confirmed', ]); User::create([ 'name' => $request->name, 'email' => $request->email, 'password' => bcrypt($request->password), ]); return redirect()->intended('dashboard'); }
上述代码定义了一个名为store()
的方法,此方法用于处理注册请求。首先,validate()
方法会验证请求的数据。如果验证通过,则使用User
模型来创建一个新用户,并对密码进行加密。最后,重定向到应用程序的仪表板页面。
六、创建登录页面
接下来,需要创建一个登录页面,让用户可以输入自己的已注册电子邮件地址和密码。打开resources/views/auth/login.blade.php
文件,可以看到Laravel已经为我们创建了一个基本的登录表单。
七、处理登录请求
注册表单已经创建,但是当用户提交表单时并不会生效。所以我们需要修改app/Http/Controllers/Auth/LoginController.php
文件来处理登录请求。
public function store(Request $request) { $credentials = $request->only('email', 'password'); if (Auth::attempt($credentials)) { $request->session()->regenerate(); return redirect()->intended('dashboard'); } return back()->withErrors([ 'email' => 'The provided credentials do not match our records.', ]); }
上述代码定义了一个名为store()
的方法,此方法用于处理登录请求。首先,attempt()
方法会尝试使用用户提供的凭据进行身份验证。如果验证成功,则生成新会话并将用户重定向到应用程序的仪表板页面。如果失败,则会使用back()
方法将用户重定向回原始登录页面,并显示错误消息。
八、设置认证中间件
一旦注册和登录功能已经实现,需要保护应用程序的某些路由,只有已认证的用户才能访问。在Laravel中,可以使用中间件来实现此目的。Laravel提供了一个名为auth
的中间件,它会验证用户是否已经登录到应用程序。
Laravel默认情况下将auth
中间件应用于任何使用auth
路由名称的路由。可以使用以下代码来指定一个或多个中间件:
Route::get('/dashboard', function () { // 仅允许已登录用户访问 })->middleware(['auth']);
现在,只有已认证的用户才能访问/dashboard
rrreee
Entrez http://localhost:8000
dans le navigateur pour accéder à la page d'accueil de l'application.
make:auth
Artisan pour générer rapidement des vues et des contrôleurs liés à l'authentification. 🎜rrreee🎜Après avoir exécuté la commande ci-dessus, Laravel créera automatiquement register
, login
et logout
ainsi que d'autres vues et contrôleurs associés, et les ajoutera dans la demande. De plus, Laravel créera des tables de réinitialisation d'utilisateurs et de mots de passe pertinentes dans la base de données. 🎜🎜3. Créer une table de base de données🎜Par défaut, Laravel utilise la base de données MySQL. Dans cet exemple, vous devez créer une table de données nommée users
pour stocker les données utilisateur. La table peut être créée à l'aide de la commande Artisan suivante : 🎜rrreee🎜Après avoir exécuté la commande ci-dessus, Laravel créera une migration nommée create_users_table
dans le document de répertoire database/migrations
de l'application. Ouvrez le fichier et modifiez la méthode up
comme suit : 🎜rrreee🎜Le fichier de migration ci-dessus définit les champs de la table de données utilisateurs
, y compris nom
( nom d'utilisateur), email
(adresse email), mot de passe
(mot de passe), etc. 🎜🎜Après avoir modifié le fichier de migration, vous devez exécuter la commande Artisan suivante pour créer réellement la table de données utilisateurs
: 🎜rrreee🎜Quatre Créer une page d'inscription🎜Ensuite, vous devez créer une page d'inscription. afin que les utilisateurs puissent saisir votre nom d'utilisateur, votre adresse e-mail et votre mot de passe. Ouvrez le fichier resources/views/auth/register.blade.php
et vous pourrez voir que Laravel a créé un formulaire d'inscription de base pour nous. 🎜🎜À ce stade, nous devons supprimer certains champs et ajouter le champ name
et le champ de confirmation du mot de passe password_confirmation
qui doivent être remplis. Le code modifié est le suivant : 🎜rrreee🎜 5. Traitez la demande d'inscription🎜 Maintenant, le formulaire d'inscription a été créé, mais il ne prendra pas effet lorsque l'utilisateur soumettra le formulaire. Nous devons donc modifier le fichier app/Http/Controllers/Auth/RegisterController.php
pour gérer les demandes d'enregistrement. 🎜rrreee🎜Le code ci-dessus définit une méthode nommée store()
, qui est utilisée pour gérer les demandes d'inscription. Tout d'abord, la méthode validate()
valide les données demandées. Si la vérification réussit, utilisez le modèle Utilisateur
pour créer un nouvel utilisateur et crypter le mot de passe. Enfin, redirigez vers la page du tableau de bord de l'application. 🎜🎜 6. Créez une page de connexion 🎜 Ensuite, vous devez créer une page de connexion où les utilisateurs peuvent saisir leur adresse e-mail et leur mot de passe enregistrés. Ouvrez le fichier resources/views/auth/login.blade.php
et vous pourrez voir que Laravel a créé un formulaire de connexion de base pour nous. 🎜🎜7. Traitement des demandes de connexion🎜Le formulaire d'inscription a été créé, mais il ne prendra pas effet lorsque l'utilisateur soumettra le formulaire. Nous devons donc modifier le fichier app/Http/Controllers/Auth/LoginController.php
pour gérer les demandes de connexion. 🎜rrreee🎜Le code ci-dessus définit une méthode nommée store()
, qui est utilisée pour gérer les demandes de connexion. Tout d'abord, la méthode attempt()
tente de s'authentifier à l'aide des informations d'identification fournies par l'utilisateur. Si la vérification réussit, une nouvelle session est générée et l'utilisateur est redirigé vers la page du tableau de bord de l'application. Si cela échoue, la méthode back()
est utilisée pour rediriger l'utilisateur vers la page de connexion d'origine avec un message d'erreur. 🎜🎜 8. Mettre en place un middleware d'authentification 🎜 Une fois les fonctions d'inscription et de connexion mises en place, certaines routes de l'application doivent être protégées afin que seuls les utilisateurs authentifiés puissent y accéder. Dans Laravel, vous pouvez utiliser un middleware pour y parvenir. Laravel fournit un middleware appelé auth
qui vérifie si l'utilisateur est connecté à l'application. 🎜🎜Laravel applique par défaut le middleware auth
à n'importe quelle route en utilisant le nom de la route auth
. Un ou plusieurs middlewares peuvent être spécifiés à l'aide du code suivant : 🎜rrreee🎜 Désormais, seuls les utilisateurs authentifiés peuvent accéder à la route /dashboard
. 🎜🎜Résumé🎜Cet article explique comment utiliser le framework Laravel pour implémenter les fonctions d'enregistrement et de connexion. Avec l'aide du framework Laravel, vous pouvez créer rapidement et facilement une application Web sûre et fiable et promouvoir le processus de développement d'applications Web. Que vous soyez débutant ou développeur expérimenté, vous pouvez essayer d'utiliser le framework Laravel pour créer vos propres applications Web. 🎜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!