Maison  >  Article  >  cadre php  >  processus d'enregistrement de connexion au framework Laravel

processus d'enregistrement de connexion au framework Laravel

WBOY
WBOYoriginal
2023-05-29 09:58:07983parcourir

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.

  1. Processus d'enregistrement des utilisateurs

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>

然后我们就成功地创建了用户注册流程。

  1. 用户登录流程

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框架提供的attemptLoginrrreee

Après avoir créé le modèle utilisateur, nous devons en créer un autre. modèle utilisateur Pour le contrôleur qui affiche la page d'enregistrement de l'utilisateur, nous utilisons la commande suivante pour créer le contrôleur :

rrreee

Après avoir exécuté cette commande, le framework Laravel sera créé dans le appHttpControllersAuth 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. #🎜🎜#
    #🎜🎜#Processus de connexion utilisateur#🎜🎜##🎜🎜##🎜🎜#Laravel fournit une méthode de connexion utilisateur très rapide, nous pouvons utiliser cette méthode pour la connexion utilisateur. Ajoutez les routes suivantes dans 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!

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
Article précédent:laravel supprimer csrfArticle suivant:laravel supprimer csrf