Rumah  >  Artikel  >  rangka kerja php  >  lompat lalai log masuk laravel

lompat lalai log masuk laravel

WBOY
WBOYasal
2023-05-20 19:03:37486semak imbas

Laravel ialah rangka kerja PHP yang sangat popular yang menyediakan banyak fungsi mudah dan fungsi berkuasa untuk membantu pembangun membangunkan aplikasi web dengan lebih pantas dan cekap. Salah satu ciri yang berkuasa ialah sistem log masuk pengguna. Dalam Laravel, anda boleh membuat sistem pengesahan pengguna dengan cepat untuk log pengguna ke dalam aplikasi anda. Banyak fungsi pengesahan pengguna biasa seperti pendaftaran, log masuk, tetapan semula kata laluan, dll. boleh dilaksanakan dengan mudah menggunakan kod mudah.

Apabila pengguna berjaya log masuk ke aplikasi anda, Laravel akan mengubah hala pengguna ke direktori akar aplikasi anda secara lalai. Walau bagaimanapun, kadangkala anda mahu pengguna diubah hala ke halaman tertentu selepas log masuk, seperti profil pengguna atau panel kawalan. Dalam artikel ini, kami akan menerangkan cara menetapkan URL ubah hala log masuk lalai dalam Laravel.

Pertama, mari kita lihat cara sistem pengesahan pengguna Laravel berfungsi. Laravel menggunakan pengawal secara lalai untuk mengurus pengesahan pengguna, dan pengawal "web" ialah pengawal yang digunakan oleh Laravel secara lalai. Sebelum menggunakan guard, anda perlu mengkonfigurasinya dalam fail config/auth.php. Dalam fail ini, anda boleh menentukan pengawal yang berbeza dan konfigurasinya. Sebagai contoh, di bawah ialah contoh fail config/auth.php yang mentakrifkan dua pengawal: "web" dan "admin".

return [

    'guards' => [

        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],

        'admin' => [
            'driver' => 'session',
            'provider' => 'admins',
        ],

    ],

    'providers' => [

        'users' => [
            'driver' => 'eloquent',
            'model' => AppModelsUser::class,
        ],

        'admins' => [
            'driver' => 'eloquent',
            'model' => AppModelsAdmin::class,
        ],

    ],

];

Dalam contoh di atas, kita dapat melihat bahawa kedua-dua pengawal "web" dan pengawal "admin" menggunakan pemacu sesi untuk pengesahan, di mana pengawal "web" menggunakan pembekal "pengguna" untuk pengesahan pengguna , dan pengawal "admin" ” menggunakan penyedia “admin” untuk pengesahan pentadbir. Selain itu, kami juga boleh mengkonfigurasi URL ubah hala lalai setiap pengawal dalam fail config/auth.php. Sebagai contoh, berikut ialah contoh menggunakan URL ubah hala lalai:

'guards' => [

        'web' => [
            'driver' => 'session',
            'provider' => 'users',
            'redirect' => '/',
        ],

    ],

Dalam contoh di atas, kami menetapkan URL ubah hala lalai pengawal "web" kepada "/", yang merupakan direktori akar bagi permohonan. Apabila pengguna berjaya log masuk, mereka akan diubah hala ke URL ini. Begitu juga, anda boleh menukar URL ubah hala jika perlu, contohnya, kepada profil pengguna atau panel kawalan. Anda hanya perlu menukar pilihan 'redirect' dalam konfigurasi guard kepada URL yang perlu diubah hala.

Walau bagaimanapun, jika anda mempunyai berbilang pengawal dalam aplikasi anda, seperti pengawal "web" dan "admin" dalam contoh di atas, bagaimanakah anda menetapkan URL ubah hala lalai? Dalam kes ini, Laravel menyediakan penyelesaian mudah yang membolehkan anda menetapkan URL ubah hala lalai dengan mudah untuk setiap pengawal.

Secara lalai, Laravel menyediakan LogController dalam fail app/Http/Controllers/Auth/LoginController.php untuk mengurus log masuk pengguna. Anda boleh menetapkan URL ubah hala lalai untuk setiap pengawal dalam pengawal ini. Sebagai contoh, berikut ialah contoh menukar URL ubah hala lalai untuk pengawal "web" dan pengawal "admin":

<?php

namespace AppHttpControllersAuth;

use AppHttpControllersController;
use IlluminateFoundationAuthAuthenticatesUsers;

class LoginController extends Controller
{
    use AuthenticatesUsers;

    protected $redirectTo = '/';

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

    protected function redirectTo()
    {
        if (auth()->user()->isAdmin()) {
            return '/admin/dashboard';
        } else {
            return '/home';
        }
    }
}

Dalam contoh di atas, kami mengatasi kaedah redirectTo() dalam LoginController dan mengubah halanya berdasarkan semasa Pengawal pengguna mengembalikan URL ubah hala yang berbeza. Jika pengawal pengguna semasa ialah "admin", ia akan mengubah hala ke panel kawalan pentadbir, jika tidak, ia akan mengubah hala ke halaman utama peribadi pengguna. Anda boleh menukar URL ubah hala mengikut keperluan anda.

Perlu diambil perhatian bahawa kaedah redirectTo() boleh digunakan untuk mengubah hala pengguna hanya jika pilihan 'redirect' ditetapkan dalam pengawal. Jika anda tidak menetapkan pilihan 'ubah hala' dalam fail config/auth.php, anda perlu menggunakan URL ubah hala lalai. Selain itu, penggantian kaedah redirectTo() sememangnya berbeza daripada menukar terus pilihan 'redirect'. Dalam kaedah redirectTo() anda boleh menulis sebarang kod logik untuk mencapai kawalan halus URL ubah hala.

Secara keseluruhannya, menetapkan URL ubah hala log masuk lalai Laravel adalah sangat mudah. Anda boleh menetapkan ini melalui fail config/auth.php atau kaedah redirectTo() dalam LoginController. Jika aplikasi anda mempunyai berbilang pengawal, anda boleh mengawal dengan terperinci setiap URL ubah hala lalai pengawal dalam LoginController. Kaedah ini memberi anda lebih kawalan ke atas pengalaman pengguna dan aliran aplikasi anda, menjadikannya lebih lancar dan lebih mesra pengguna.

Atas ialah kandungan terperinci lompat lalai log masuk 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