Rumah  >  Artikel  >  rangka kerja php  >  Bagaimana untuk melaksanakan fungsi lompat selepas log masuk dalam laravel

Bagaimana untuk melaksanakan fungsi lompat selepas log masuk dalam laravel

PHPz
PHPzasal
2023-04-21 10:06:21814semak imbas

Laravel merupakan rangka kerja web PHP yang paling banyak digunakan pada masa ini Fungsi log masuknya sangat biasa digunakan, dan melompat ke halaman tertentu selepas log masuk berjaya juga merupakan salah satu keperluan biasa. Artikel ini akan memperkenalkan secara terperinci cara melaksanakan fungsi lompat selepas log masuk dalam Laravel.

1. Pasang Laravel

Jika anda belum memasang Laravel, anda boleh mengikuti langkah berikut untuk memasangnya:

  1. Pasang pemasang Laravel: composer global require laravel/installer
  2. Buat projek baharu: laravel new project_name
  3. Masukkan direktori projek: cd project_name
  4. Mulakan pelayan terbina dalam Laravel: php artisan serve

Dalam artikel ini, Kami akan menggunakan konfigurasi lalai untuk pembangunan, jika anda telah menggunakan konfigurasi yang berbeza ia mungkin berbeza sedikit.

2. Laksanakan fungsi log masuk

Sangat mudah untuk melaksanakan fungsi log masuk dalam Laravel, anda hanya perlu menggunakan perisian tengah Auth. Tambahkan laluan berikut dalam fail routes/web.php:

Route::get('/login', 'LoginController@showLoginForm')->name('login');
Route::post('/login', 'LoginController@login');

Dua laluan ini sepadan dengan paparan halaman log masuk dan pemprosesan operasi log masuk masing-masing. Antaranya, kaedah LoginController@showLoginForm digunakan untuk memaparkan borang log masuk, dan kaedah LoginController@login digunakan untuk memproses permintaan log masuk yang diserahkan oleh pengguna.

Jika anda belum mencipta LoginController lagi, anda boleh menciptanya dengan cepat dengan arahan berikut:

php artisan make:controller LoginController

Dalam LoginController, anda boleh menggunakan ciri AuthenticatesUsers yang disediakan oleh Laravel untuk melaksanakan fungsi log masuk dengan cepat. Anda hanya perlu memperkenalkan ciri ini dalam kelas:

use AuthenticatesUsers;

public function __construct()
{
    $this->middleware('guest')->except('logout');
}

Secara lalai, selepas berjaya log masuk, anda akan melompat ke halaman /home Anda boleh mengubah suai atribut AuthLoginController dalam $redirectTo kepada tentukan pengguna Halaman untuk melompat selepas berjaya log masuk.

protected $redirectTo = '/dashboard';//修改为你要跳转的路径

3. Laksanakan lompat selepas log masuk

Ia juga sangat mudah untuk melaksanakan lompatan selepas log masuk dalam Laravel Anda hanya perlu mengubah suai atribut $redirectTo dalam pengawal log masuk. Walau bagaimanapun, jika anda ingin melompat ke halaman yang dilawati pengguna sebelum ini selepas log masuk berjaya, anda perlu melakukan perkara berikut:

  1. Buat RedirectIfAuthenticated middleware

dalam app/Http/Middleware Cipta fail RedirectIfAuthenticated.php dalam direktori dan tambahkan kod berikut:

<?php

namespace App\Http\Middleware;

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

class RedirectIfAuthenticated
{
    public function handle(Request $request, Closure $next, $guard = null)
    {
        if (Auth::guard($guard)->check()) {
            return redirect()->intended('/dashboard');//修改为登录成功后要跳转的路径
        }

        return $next($request);
    }
}

Kaedah intended dalam kod akan cuba mengubah hala pengguna ke lokasi di mana mereka asal meminta halaman, jika tiada lokasi sebelumnya, Ia akan mengubah hala ke laluan yang ditentukan secara lalai.

  1. Daftarkan middleware dalam app/Http/Kernel.php

Daftarkan middleware baharu dalam tatasusunan app/Http/Kernel.php dalam fail $routeMiddleware:

protected $routeMiddleware = [
    // ... 其他中间件省略
    'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
];
  1. Ubah suai pengawal log masuk

Dalam pengawal log masuk, ubah suai alamat sasaran ubah hala selepas berjaya log masuk ke kaedah intended untuk mencapai lompatan ke selepas log masuk Halaman yang dilawati pengguna sebelum ini:

protected $redirectTo = '/dashboard';//删除这行
public function login(Request $request)
{
    $this->validateLogin($request);

    if ($this->attemptLogin($request)) {
        // 登录成功后跳转到用户之前访问的页面
        return redirect()->intended('/dashboard');
    }

    $this->incrementLoginAttempts($request);

    return $this->sendFailedLoginResponse($request);
}

4. Ringkasan

Dalam artikel ini, kami mengetahui operasi yang diperlukan untuk melaksanakan lompatan selepas log masuk dalam Laravel. Pertama, kita perlu menggunakan Auth middleware untuk melaksanakan fungsi log masuk. Kemudian, kami melaksanakan lompatan selepas log masuk dengan mengubah suai atribut $redirectTo dalam pengawal log masuk. Akhir sekali, kami mencipta perisian tengah dan mengubah suai kod dalam pengawal log masuk untuk melompat ke halaman yang dilawati pengguna sebelum melog masuk.

Saya harap artikel ini dapat membantu anda melaksanakan fungsi lompat selepas log masuk dengan mudah dalam Laravel!

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan fungsi lompat selepas log masuk dalam 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