Rumah  >  Artikel  >  rangka kerja php  >  proses pendaftaran log masuk rangka kerja laravel

proses pendaftaran log masuk rangka kerja laravel

WBOY
WBOYasal
2023-05-29 09:58:07985semak imbas

Rangka kerja Laravel ialah rangka kerja pembangunan aplikasi web yang sangat baik dan popular berdasarkan bahasa PHP. Rangka kerja Laravel mempunyai sistem log masuk dan pendaftaran pengguna yang sangat lengkap. Sistem pendaftaran dan log masuk ini boleh melaksanakan fungsi pengesahan asas untuk pengguna, dan boleh melakukan satu siri operasi kebenaran ke atas pengguna, seperti: pengurusan hak pengguna, tetapan semula kata laluan, pengesahan e-mel, dan lain-lain. Dalam artikel berikut, kami akan menghuraikan proses log masuk dan pendaftaran rangka kerja Laravel.

  1. Proses pendaftaran pengguna

Pertama, kita perlu mencipta jadual pengguna untuk menyimpan maklumat asas pengguna. Kita boleh mencipta model ini menggunakan arahan "make:model" yang disediakan oleh Laravel. Masukkan arahan berikut dalam terminal:

php artisan make:model User -m

Arahan ini akan menjana model app dalam direktori User dan jadual users dalam pangkalan data. Dalam model User, kita perlu menentukan kaedah pengesahan yang digunakan oleh pengguna. Rangka kerja Laravel menyediakan pelbagai kaedah pengesahan pengguna, yang boleh kita tetapkan dalam atribut guard dalam model:

protected $guard = 'web';

Selepas mencipta model pengguna, kita perlu mencipta kawalan untuk memaparkan halaman pendaftaran pengguna pengawal, kami menggunakan arahan berikut untuk mencipta pengawal:

php artisan make:controller AuthRegisterController --resource

Selepas menjalankan arahan ini, rangka kerja Laravel akan mencipta fail bernama appHttpControllersAuth dalam direktori RegisterController.php. Dalam pengawal ini, kita perlu melaksanakan kaedah berikut:

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

Seterusnya, kita perlu menambah laluan pengawal ini dalam routes/web.php:

Route::get('register', 'AuthRegisterController@showRegistrationForm')->name('register');
Route::post('register', 'AuthRegisterController@register');

Di muka depan, kami menggunakan The borang berikut digunakan untuk mengumpul data pengguna:

<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>

Kemudian kami berjaya membuat proses pendaftaran pengguna.

  1. Proses log masuk pengguna

Laravel menyediakan kaedah log masuk pengguna yang sangat pantas, yang boleh kami gunakan untuk log masuk pengguna. Tambahkan laluan berikut dalam routes/web.php:

Route::get('login', 'AuthLoginController@showLoginForm')->name('login');
Route::post('login', 'AuthLoginController@login');
Route::post('logout', 'AuthLoginController@logout')->name('logout');

dan kemudian buat pengawal User sepadan dengan model LoginController. Dalam pengawal, kita perlu melaksanakan kaedah berikut:

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('/');
}

Seterusnya, kita perlu mencipta paparan log masuk pengguna. Dalam paparan, kami menggunakan borang berikut untuk menerima data pengguna:

<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>

Selepas mencipta paparan dan pengawal di atas, kami melaksanakan proses log masuk pengguna dan pendaftaran rangka kerja Laravel. Apa yang perlu diambil perhatian ialah selepas pengguna berjaya log masuk, maklumat pengguna perlu disimpan dalam sesi untuk memudahkan panggilan fungsi seterusnya. Dalam kaedah kedua pengawal, kita boleh menggunakan kaedah attemptLogin yang disediakan oleh rangka kerja Laravel untuk mengesahkan maklumat log masuk pengguna Jika pengesahan diluluskan, maklumat pengguna akan disimpan dalam sesi dan pengguna akan dialihkan ke sub-url.

Ringkasnya, proses log masuk pengguna dan pendaftaran rangka kerja Laravel adalah sangat mudah dan mudah difahami Ia hanya memerlukan beberapa baris kod ringkas untuk melaksanakan fungsi log masuk dan pendaftaran pengguna melalui langkah di atas. Sudah tentu, jika pengguna memerlukan pengesahan dan pengurusan kebenaran yang lebih maju, mereka juga boleh menggunakan kebolehlanjutan rangka kerja Laravel untuk menambah beberapa kaedah tersuai berdasarkan model dan pengawal di atas.

Atas ialah kandungan terperinci proses pendaftaran log masuk rangka kerja laravel. 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
Artikel sebelumnya:laravel keluarkan csrfArtikel seterusnya:laravel keluarkan csrf