Le framework Laravel est un excellent et populaire framework de développement d'applications Web basé sur le langage PHP. Le framework Laravel dispose d'un système de connexion et d'enregistrement des utilisateurs très complet. Ce système d'enregistrement et de connexion peut implémenter des fonctions d'authentification de base pour les utilisateurs, et peut effectuer une série d'opérations d'autorisation sur les utilisateurs, telles que : la gestion des droits des utilisateurs, la réinitialisation du mot de passe, la vérification des e-mails, etc. . Dans l'article suivant, nous développerons le processus de connexion et d'enregistrement du framework Laravel.
Tout d'abord, nous devons créer une table utilisateur pour enregistrer les informations de base de l'utilisateur. Nous pouvons créer ce modèle en utilisant la commande "make:model" fournie par Laravel. Entrez la commande suivante dans le terminal :
php artisan make:model User -m
Cette commande générera un modèle Utilisateur
dans le répertoire app
, et générera un dans la table code>utilisateurs
de la base de données. Dans le modèle Utilisateur
, nous devons spécifier la méthode d'authentification utilisée par l'utilisateur. Le framework Laravel fournit une variété de méthodes d'authentification des utilisateurs, que nous pouvons définir dans l'attribut guard
du modèle : app
目录下生成一个User
模型,并且在数据库生成一个users
表。在User
模型中,我们需要指定用户使用的认证方式。Laravel框架提供了多种用户认证方式,我们可以在模型中的guard
属性中进行设置:
protected $guard = 'web';
创建好用户模型之后,我们需要再创建一个用于展示用户注册页面的控制器,我们使用以下命令来创建该控制器:
php artisan make:controller AuthRegisterController --resource
运行完这个命令之后,Laravel框架将会在appHttpControllersAuth
目录下创建一个名为RegisterController.php
的文件。在该控制器中,我们需要实现以下方法:
use AppUser; use IlluminateFoundationAuthRegistersUsers; public function register(Request $request) { $this->validator($request->all())->validate(); event(new Registered($user = $this->create($request->all()))); $this->guard()->login($user); return redirect($this->redirectTo); } // 验证用户输入的数据 protected function validator(array $data) { return Validator::make($data, [ 'name' => ['required', 'string', 'max:255'], 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], 'password' => ['required', 'string', 'min:8', 'confirmed'], ]); } // 保存注册用户信息到数据库 protected function create(array $data) { return User::create([ 'name' => $data['name'], 'email' => $data['email'], 'password' => Hash::make($data['password']), ]); }
接下来,我们需要在routes/web.php
中添加该控制器的路由:
Route::get('register', 'AuthRegisterController@showRegistrationForm')->name('register'); Route::post('register', 'AuthRegisterController@register');
在前台页面上,我们使用以下表单来收集用户数据:
<form method="POST" action="{{ route('register') }}"> @csrf <div> <label for="name">用户名</label> <input id="name" type="text" name="name" value="{{ old('name') }}" required autofocus> </div> <div> <label for="email">邮箱</label> <input id="email" type="email" name="email" value="{{ old('email') }}" required> </div> <div> <label for="password">密码</label> <input id="password" type="password" name="password" required> </div> <div> <label for="password-confirm">确认密码</label> <input id="password-confirm" type="password" name="password_confirmation" required> </div> <div> <button type="submit">注册</button> </div> </form>
然后我们就成功地创建了用户注册流程。
Laravel提供了非常快捷的用户登录方法,我们可以使用该方法来进行用户登录。在routes/web.php
中添加以下路由:
Route::get('login', 'AuthLoginController@showLoginForm')->name('login'); Route::post('login', 'AuthLoginController@login'); Route::post('logout', 'AuthLoginController@logout')->name('logout');
然后创建一个与User
模型对应的LoginController
控制器。在控制器中,我们需要实现以下方法:
use IlluminateFoundationAuthAuthenticatesUsers; public function login(Request $request) { $this->validateLogin($request); if ($this->attemptLogin($request)) { return $this->sendLoginResponse($request); } return $this->sendFailedLoginResponse($request); } // 认证用户名和密码 protected function attemptLogin(Request $request) { return $this->guard()->attempt( $this->credentials($request), $request->filled('remember') ); } // 获取用户名和密码 protected function credentials(Request $request) { return $request->only($this->username(), 'password'); } public function username() { return 'email'; } // 用户退出登录方法 public function logout(Request $request) { $this->guard()->logout(); $request->session()->invalidate(); return redirect('/'); }
接着,我们需要创建一个用户登录视图。在视图中,我们使用以下表单来接收用户数据:
<form method="POST" action="{{ route('login') }}"> @csrf <div> <label for="email">邮箱</label> <input id="email" type="email" name="email" value="{{ old('email') }}" required autofocus> </div> <div> <label for="password">密码</label> <input id="password" type="password" name="password" required> </div> <div> <input type="checkbox" name="remember" id="remember" {{ old('remember') ? 'checked' : '' }}> <label for="remember">记住我</label> </div> <div> <button type="submit">登录</button> </div> </form>
在创建好以上视图和控制器之后,我们就实现了Laravel框架的用户登录和注册流程。需要注意的事项是用户登录成功之后,需要将用户信息存入session中,以便于后续功能的调用。在控制器的第二个方法中,我们可以利用Laravel框架提供的attemptLogin
rrreee
rrreee
Après avoir exécuté cette commande, le framework Laravel sera créé dans leappHttpControllersAuth code> répertoire Un fichier nommé <code>RegisterController.php
. Dans ce contrôleur, nous devons implémenter la méthode suivante : #🎜🎜#rrreee#🎜🎜#Ensuite, nous devons ajouter la route de ce contrôleur dans routes/web.php
: #🎜🎜 # rrreee#🎜🎜#Sur la première page, nous utilisons le formulaire suivant pour collecter les données des utilisateurs : #🎜🎜#rrreee#🎜🎜#Ensuite, nous créons avec succès le processus d'enregistrement des utilisateurs. #🎜🎜#routes/web.php
: #🎜🎜#rrreee#🎜🎜# Créez ensuite un LoginController
correspondant au modèle User
contrôleur. Dans le contrôleur, nous devons implémenter la méthode suivante : #🎜🎜#rrreee#🎜🎜#Ensuite, nous devons créer une vue de connexion utilisateur. Dans la vue, nous utilisons le formulaire suivant pour recevoir les données utilisateur : #🎜🎜#rrreee#🎜🎜#Après avoir créé la vue et le contrôleur ci-dessus, nous avons implémenté le processus de connexion et d'enregistrement de l'utilisateur du framework Laravel. Ce qu'il convient de noter, c'est qu'une fois que l'utilisateur s'est connecté avec succès, les informations utilisateur doivent être stockées dans la session pour faciliter les appels de fonction ultérieurs. Dans la deuxième méthode du contrôleur, nous pouvons utiliser la méthode attemptLogin
fournie par le framework Laravel pour vérifier les informations de connexion de l'utilisateur. Si la vérification est réussie, les informations de l'utilisateur seront stockées dans la session et dans le fichier. l'utilisateur sera redirigé vers la sous-URL. #🎜🎜##🎜🎜# En résumé, le processus de connexion et d'enregistrement des utilisateurs du framework Laravel est très simple et facile à comprendre. Il ne nécessite que quelques lignes de code simples pour implémenter les fonctions de connexion et d'enregistrement des utilisateurs à travers les étapes ci-dessus. . Bien entendu, si les utilisateurs ont besoin d'une authentification et d'une gestion des autorisations plus avancées, ils peuvent également utiliser l'extensibilité du framework Laravel pour ajouter des méthodes personnalisées basées sur les modèles et contrôleurs ci-dessus. #🎜🎜#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!