Maison >cadre php >Laravel >Parlons de la façon de changer le système de connexion Laravel en connexion mobile

Parlons de la façon de changer le système de connexion Laravel en connexion mobile

PHPz
PHPzoriginal
2023-04-14 15:56:17804parcourir

Laravel est un framework PHP très populaire qui offre de nombreuses fonctionnalités pratiques et faciles à utiliser. L'un d'eux est le système d'authentification, qui permet aux utilisateurs de s'inscrire et de se connecter au site Web. Dans cet article, je vais expliquer comment changer le système de connexion Laravel en connexion mobile.

Avant de commencer à coder, assurez-vous que Laravel est installé et configuré. Sinon, vous pouvez trouver des conseils détaillés dans la documentation officielle de Laravel.

La première étape consiste à créer une nouvelle table de base de données pour stocker le numéro de téléphone mobile et le mot de passe de l'utilisateur. Vous pouvez le faire en utilisant les migrations Laravel. Ouvrez une fenêtre de terminal et entrez la commande suivante :

php artisan make:migration create_phone_auth_tablephp artisan make:migration create_phone_auth_table

这将创建一个新的迁移文件,您可以在其中定义新的数据库表。在Laravel中创建一个数据表的方法如下所示:

public function up()
{
    Schema::create('phone_auth', function (Blueprint $table) {
        $table->increments('id');
        $table->string('phone_number')->unique();
        $table->string('password');
        $table->timestamps();
    });
}

在此示例中,我们创建一个名为"phone_auth"的新表,其中包含"id"、"phone_number"、"password"以及"timestamps"列。请注意,我们将"phone_number"列定义为唯一的,以确保不会有重复的手机号码。

接下来,我们需要创建一个新的控制器来处理手机登录。打开终端窗口并输入以下命令:

php artisan make:controller PhoneLoginController

Cela créera un nouveau fichier de migration dans lequel vous pourrez définir la nouvelle table de base de données. La méthode pour créer une table de données dans Laravel est la suivante :

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

public function login(Request $request)
{
    $this->validate($request, [
        'phone_number' => 'required',
        'password' => 'required',
    ]);

    $phone_number = $request->input('phone_number');
    $password = $request->input('password');

    if (Auth::attempt(['phone_number' => $phone_number, 'password' => $password])) {
        return redirect()->intended('/');
    }

    return redirect()->back()->withInput()->withErrors(['message' => 'Phone number or password is incorrect.']);
}
Dans cet exemple, nous créons une nouvelle table nommée « phone_auth », qui contient la liste « id », « phone_number », « password » et « timestamps ». Notez que nous définissons la colonne « phone_number » comme étant unique afin de garantir qu'il n'y a pas de numéros de téléphone en double.

Ensuite, nous devons créer un nouveau contrôleur pour gérer la connexion mobile. Ouvrez une fenêtre de terminal et entrez la commande suivante :

php artisan make:controller PhoneLoginController

Ensuite, ouvrez le fichier "app/Http/Controllers/PhoneLoginController.php" et ajoutez le code suivant au fin du fichier :

@extends('layouts.app')

@section('content')
    <div class="container">
        <div class="row justify-content-center">
            <div class="col-md-8">
                <div class="card">
                    <div class="card-header">{{ __('Phone Login') }}</div>

                    <div class="card-body">
                        <form method="POST" action="{{ route(&#39;phone.login&#39;) }}">
                            @csrf

                            <div class="form-group row">
                                <label for="phone_number" class="col-md-4 col-form-label text-md-right">{{ __('Phone Number') }}</label>

                                <div class="col-md-6">
                                    <input id="phone_number" type="text" class="form-control{{ $errors->has('phone_number') ? ' is-invalid' : '' }}" name="phone_number" value="{{ old('phone_number') }}" required autofocus>

                                    @if ($errors->has('phone_number'))
                                        <span class="invalid-feedback" role="alert">
                                            <strong>{{ $errors->first('phone_number') }}</strong>
                                        </span>
                                    @endif
                                </div>
                            </div>

                            <div class="form-group row">
                                <label for="password" class="col-md-4 col-form-label text-md-right">{{ __('Password') }}</label>

                                <div class="col-md-6">
                                    <input id="password" type="password" class="form-control{{ $errors->has('password') ? ' is-invalid' : '' }}" name="password" required>

                                    @if ($errors->has('password'))
                                        <span class="invalid-feedback" role="alert">
                                            <strong>{{ $errors->first('password') }}</strong>
                                        </span>
                                    @endif
                                </div>
                            </div>

                            <div class="form-group row mb-0">
                                <div class="col-md-6 offset-md-4">
                                    <button type="submit" class="btn btn-primary">
                                        {{ __('Login') }}
                                    </button>
                                </div>
                            </div>
                        </form>
                    </div>
                </div>
            </div>
        </div>
    </div>
@endsection
Dans ce code, nous définissons deux méthodes : "showLoginForm" et "login". "showLoginForm" renvoie une vue contenant un formulaire avec deux zones de texte et un bouton d'envoi permettant à l'utilisateur de saisir son numéro de téléphone mobile et son mot de passe. La méthode "login" validera les données d'entrée de l'utilisateur et tentera de connecter l'utilisateur à l'aide de la classe Auth. Si la connexion réussit, l'utilisateur sera redirigé vers la page d'accueil. Sinon, l'utilisateur recevra un message d'erreur.

Maintenant, nous devons créer un nouveau fichier de vue "auth.phone-login". Créez un nouveau fichier dans le dossier "Laravel/resources/views/auth" et nommez-le "phone-login.blade.php". N'oubliez pas que le moteur Blade est utilisé dans Laravel pour restituer les vues et vous offrir de puissantes capacités de création de modèles. Ajoutez le code HTML et le code de formulaire suivants à ce fichier :

Route::get('phone-login', 'PhoneLoginController@showLoginForm');
Route::post('phone-login', 'PhoneLoginController@login')->name('phone.login');
Cette vue contiendra un formulaire avec deux zones de texte et un bouton d'envoi permettant à l'utilisateur de saisir son numéro de mobile et son mot de passe. Veuillez noter que nous utilisons la directive "route" dans la balise form (la directive Route fournit des fonctions pratiques, notamment la génération automatique d'URL et d'entrées de formulaire HTML) pour pointer l'adresse de soumission du formulaire vers notre route "phone.login". 🎜🎜Maintenant, la dernière étape consiste à ajouter notre nouvel itinéraire à notre fichier d'itinéraires "web". Ouvrez le fichier routes/web.php et ajoutez le code suivant à la fin du fichier : 🎜rrreee🎜Cela ajoutera deux nouvelles routes : les routes POST "phone-login" et "phone-login". Le premier itinéraire est utilisé pour afficher un formulaire permettant à l'utilisateur de saisir son numéro de téléphone mobile et son mot de passe. La deuxième route gérera la soumission du formulaire et validera les données saisies par l'utilisateur. 🎜🎜Félicitations, vous avez maintenant réussi à changer le système de connexion Laravel en connexion mobile. Veuillez noter qu'il ne s'agit que d'une simple implémentation que vous pouvez modifier et étendre en fonction de vos besoins. Vous pouvez ajouter plus de champs, tels que l'e-mail et le code de vérification, pour offrir une meilleure expérience utilisateur. 🎜

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