Maison  >  Article  >  cadre php  >  Comment modifier les champs d'authentification des utilisateurs dans Laravel

Comment modifier les champs d'authentification des utilisateurs dans Laravel

PHPz
PHPzoriginal
2023-04-03 19:41:18674parcourir

Laravel est l'un des frameworks PHP les plus populaires aujourd'hui et est largement utilisé dans le développement d'applications Web en raison de ses excellentes fonctionnalités. Parmi elles, l'authentification des utilisateurs est l'une des fonctionnalités les plus couramment utilisées dans les applications Laravel. Laravel fournit un système d'authentification des utilisateurs très complet qui peut facilement mettre en œuvre des fonctions de connexion, d'enregistrement et autres. Mais parfois, nous devons modifier le champ d'authentification par défaut. Cet article explique comment modifier le champ d'authentification utilisateur dans Laravel.

Champ d'authentification utilisateur par défaut de Laravel

La table utilisateur par défaut dans Laravel est users, qui contient les champs suivants : users,包含以下字段:

  • id: 用户ID
  • name: 用户名
  • email: 邮箱
  • password: 密码
  • remember_token: 记住密码令牌

其中,emailpassword是Laravel默认使用的用户认证字段。在登录和注册过程中,Laravel会使用这两个字段进行认证。

更改默认的用户认证字段

有时候,我们需要将默认的用户认证字段更改为其他字段,比如说将username字段作为认证字段。在Laravel中,我们需要对以下几个地方进行更改:

更改数据库迁移文件

首先,我们需要更改Laravel生成的users表的数据库迁移文件,将email字段改为username字段,比如下面的迁移文件:

Schema::create('users', function (Blueprint $table) {
    $table->increments('id');
    $table->string('username')->unique();
    $table->string('password');
    $table->rememberToken();
    $table->timestamps();
});

更改模型文件

接着,我们需要更改Laravel生成的User模型文件,将email字段改为username字段:

use Illuminate\Notifications\Notifiable;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{
    ...
    
    /**
     * Get the email address used for authentication.
     *
     * @return string
     */
    public function getEmailForAuthenticatioo()
    {
        return $this->username;
    }
    
    ...
}

更改登录控制器

最后,我们需要更改登录控制器,使用username字段进行认证。在Laravel中,登录控制器默认为app/Http/Controllers/Auth/LoginController.php。我们需要在该文件中添加以下代码:

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class LoginController extends Controller
{
    ...
    
    /**
     * Get the login username to be used by the controller.
     *
     * @return string
     */
    public function username()
    {
        return 'username';
    }
    
    ...
}

至此,我们已经完成了将username字段作为认证字段的全部操作。当用户登录或者注册时,Laravel会使用username字段进行认证。

总结

Laravel默认使用的用户认证字段为emailpassword,但是,有时候我们需要将默认的认证字段更改为其他的字段。本文介绍了如何将用户认证字段更改为username字段。通过对数据库迁移文件、模型文件和控制器进行更改,我们成功地实现了将username

  • id : ID utilisateur li>
  • nom : Nom d'utilisateur
  • email : Email
  • mot de passe : Mot de passe
  • remember_token : Mémoriser le jeton de mot de passe
Parmi eux, email et mot de passe sont le champ d'authentification utilisateur utilisé par Laravel par défaut. Pendant le processus de connexion et d'enregistrement, Laravel utilise ces deux champs pour l'authentification. 🎜🎜Modifier le champ d'authentification utilisateur par défaut🎜🎜Parfois, nous devons modifier le champ d'authentification utilisateur par défaut par d'autres champs, par exemple en utilisant le champ nom d'utilisateur comme champ d'authentification. Dans Laravel, nous devons apporter des modifications aux endroits suivants : 🎜

Modifier le fichier de migration de la base de données

🎜Tout d'abord, nous devons modifier le fichier de migration de la base de données de la table users générée par Laravel, modification Le champ email est remplacé par le champ username, comme le fichier de migration suivant : 🎜rrreee

Changer le fichier de modèle

🎜Ensuite, nous vous devez modifier le fichier modèle Utilisateur, remplacez le champ e-mail par le champ nom d'utilisateur : 🎜rrreee

Changer le contrôleur de connexion🎜Enfin, nous devons modifier la connexion au contrôleur et utiliser le champ username pour nous authentifier. Dans Laravel, le contrôleur de connexion est par défaut app/Http/Controllers/Auth/LoginController.php. Nous devons ajouter le code suivant au fichier : 🎜rrreee🎜À ce stade, nous avons terminé toutes les opérations d'utilisation du champ username comme champ d'authentification. Lorsqu'un utilisateur se connecte ou s'inscrit, Laravel utilise le champ username pour l'authentification. 🎜🎜Résumé🎜🎜Les champs d'authentification utilisateur utilisés par Laravel par défaut sont email et mot de passe, mais nous devons parfois remplacer les champs d'authentification par défaut par d'autres champs. Cet article décrit comment remplacer le champ d'authentification utilisateur par un champ nom d'utilisateur. En apportant des modifications au fichier de migration de base de données, au fichier de modèle et au contrôleur, nous avons réussi à implémenter le champ username comme champ d'authentification. Cette action nous aide non seulement à répondre à des besoins commerciaux particuliers, mais améliore également l’expérience utilisateur utilisant l’application. 🎜

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