Rumah  >  Artikel  >  rangka kerja php  >  Mari kita bincangkan tentang cara menukar sistem log masuk Laravel kepada log masuk mudah alih

Mari kita bincangkan tentang cara menukar sistem log masuk Laravel kepada log masuk mudah alih

PHPz
PHPzasal
2023-04-14 15:56:17755semak imbas

Laravel ialah rangka kerja PHP yang sangat popular yang menyediakan banyak ciri praktikal dan mudah digunakan. Salah satunya ialah sistem pengesahan, yang membolehkan pengguna mendaftar dan log masuk ke laman web. Dalam artikel ini, saya akan membincangkan cara menukar sistem log masuk Laravel kepada log masuk mudah alih.

Sebelum anda memulakan pengekodan, pastikan anda telah memasang dan mengkonfigurasi Laravel. Jika tidak, anda boleh mendapatkan panduan terperinci dalam dokumentasi Laravel rasmi.

Langkah pertama ialah mencipta jadual pangkalan data baharu untuk menyimpan nombor telefon mudah alih dan kata laluan pengguna. Anda boleh melakukan ini menggunakan migrasi Laravel. Buka tetingkap terminal dan masukkan arahan berikut:

php artisan make:migration create_phone_auth_table

Ini akan mencipta fail migrasi baharu di mana anda boleh menentukan jadual pangkalan data baharu. Kaedah untuk mencipta jadual data dalam Laravel adalah seperti berikut:

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

Dalam contoh ini, kami mencipta jadual baharu bernama "phone_auth", yang mengandungi "id", "phone_number", " password" dan lajur "cap masa". Harap maklum bahawa kami mentakrifkan lajur "nombor_telefon" sebagai unik untuk memastikan tiada nombor telefon pendua.

Seterusnya, kita perlu mencipta pengawal baharu untuk mengendalikan log masuk mudah alih. Buka tetingkap terminal dan masukkan arahan berikut:

php artisan make:controller PhoneLoginController

Kemudian, buka fail "app/Http/Controllers/PhoneLoginController.php" dan tambah kod berikut pada penghujung fail:

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.']);
}

Dalam kod ini, kami mentakrifkan dua kaedah: "showLoginForm" dan "login". "showLoginForm" mengembalikan paparan yang mengandungi borang dengan dua kotak teks dan butang hantar untuk pengguna memasukkan nombor telefon mudah alih dan kata laluan mereka. Kaedah "log masuk" akan mengesahkan data input pengguna dan cuba log masuk pengguna menggunakan kelas Auth. Jika log masuk berjaya, pengguna akan dialihkan ke halaman utama. Jika tidak, pengguna akan menerima mesej ralat.

Sekarang kita perlu mencipta fail paparan baharu "auth.phone-login". Cipta fail baharu dalam folder "Laravel/resources/views/auth" dan namakannya "phone-login.blade.php". Ingat, enjin Blade digunakan dalam Laravel untuk memaparkan paparan dan memberi anda beberapa keupayaan templat yang berkuasa. Tambahkan HTML dan kod borang berikut pada fail ini:

@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

Paparan ini akan mengandungi borang dengan dua kotak teks dan butang hantar untuk pengguna memasukkan nombor mudah alih dan kata laluan mereka. Sila ambil perhatian bahawa kami menggunakan arahan "laluan" dalam teg borang (arahan Laluan menyediakan beberapa fungsi yang mudah, termasuk menjana URL secara automatik dan input borang HTML) untuk menghalakan alamat penyerahan borang ke laluan "phone.login" kami.

Sekarang, langkah terakhir ialah menambah laluan baharu kami pada fail laluan "web" kami. Buka fail route/web.php dan tambahkan kod berikut pada penghujung fail:

Route::get('phone-login', 'PhoneLoginController@showLoginForm');
Route::post('phone-login', 'PhoneLoginController@login')->name('phone.login');

Ini akan menambah dua laluan baharu: laluan POST "phone-login" dan "phone-login" . Laluan pertama digunakan untuk membuat borang untuk pengguna memasukkan nombor telefon bimbit dan kata laluan mereka. Laluan kedua akan mengendalikan penyerahan borang dan mengesahkan data input pengguna.

Tahniah, kini anda telah berjaya menukar sistem log masuk Laravel kepada log masuk mudah alih. Sila ambil perhatian bahawa ini hanyalah pelaksanaan mudah yang anda boleh ubah dan lanjutkan mengikut keperluan anda. Anda boleh menambah lebih banyak medan, seperti e-mel dan kod pengesahan, untuk memberikan pengalaman pengguna yang lebih baik.

Atas ialah kandungan terperinci Mari kita bincangkan tentang cara menukar sistem log masuk Laravel kepada log masuk mudah alih. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn