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_table
php 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
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.']); }
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('phone.login') }}"> @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
Route::get('phone-login', 'PhoneLoginController@showLoginForm'); Route::post('phone-login', 'PhoneLoginController@login')->name('phone.login');
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!