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

lompat log masuk laravel

WBOY
WBOYasal
2023-05-29 10:41:37343semak imbas

Sebagai rangka kerja web PHP sumber terbuka, Laravel sentiasa digemari oleh pembangun web. Fungsinya yang berkuasa dan kemudahan penggunaan adalah kelebihannya. Untuk aplikasi web, log masuk adalah salah satu fungsi yang sangat asas. Dalam Laravel, kami boleh melaksanakan log masuk dan lompat pengguna dengan cepat.

Sekarang, mari kita bincangkan tentang cara melaksanakan log masuk pengguna dan melompat dalam Laravel.

Prasyarat

Sebelum mula menulis kod, kita perlu memastikan syarat berikut:

  • Mempunyai persekitaran Laravel
  • telah menghidupkan fungsi pengesahan Laravel.

Jika anda belum menghidupkan fungsi pengesahan identiti Laravel, anda boleh memasukkan direktori akar projek dalam terminal dan masukkan arahan berikut:

php artisan make:auth

Untuk projek Laravel yang telah menghidupkan fungsi pengesahan identiti, kita boleh mengikuti langkah berikut untuk melaksanakannya.

Log masuk pengguna

Dalam Laravel, kita boleh mendapatkan nama pengguna dan kata laluan yang dimasukkan oleh pengguna melalui borang. Secara umumnya, kami akan menetapkan kaedah Pos dalam borang dan menyerahkannya kepada pengawal yang dipanggil LoginController, seperti yang ditunjukkan dalam kod berikut:

<form method="POST" action="{{ route('login') }}">
    @csrf

    <div>
        <label for="email">邮箱</label>

        <div>
            <input id="email" type="email" name="email" value="{{ old('email') }}" required autocomplete="email" autofocus>
        </div>
    </div>

    <div>
        <label for="password">密码</label>

        <div>
            <input id="password" type="password" name="password" required autocomplete="current-password">
        </div>
    </div>

    <div>
        <div>
            <div>
                <input type="checkbox" name="remember" id="remember" {{ old('remember') ? 'checked' : '' }}>

                <label for="remember">
                    记住我
                </label>
            </div>
        </div>
    </div>

    <div>
        <div>
            <button type="submit">
                登录
            </button>

            @if (Route::has('password.request'))
                <a href="{{ route('password.request') }}">
                    忘记密码了?
                </a>
            @endif
        </div>
    </div>
</form>

Selepas pengguna mengisi maklumat borang, klik butang "Log Masuk" , data akan diserahkan kepada pengawal LoginController.

Kami mencari kaedah log masuk dalam fail app/Http/Controllers/Auth/LoginController.php dan mengubah suai kandungan kaedah seperti berikut:

use IlluminateHttpRequest;

public function login(Request $request)
{
    $credentials = $request->only('email', 'password');

    if (Auth::attempt($credentials)) {
        // 认证成功后的操作
    }

    return back()->withErrors(
        ['email' => '用户名或密码错误']
    );
}

Dalam kod di atas, kami mula-mula memperoleh borang pengguna Data yang dihantar ialah e-mel dan kata laluan. Seterusnya, kami cuba mengesahkan pengguna menggunakan kaedah Auth::attempt(). Jika pengesahan pengguna berjaya, operasi susulan dilakukan dalam pernyataan if, jika tidak mesej ralat dikembalikan, menggesa pengguna bahawa nama pengguna atau kata laluan tidak betul, dan antara muka log masuk dimuat semula.

Lompat

Selepas pengguna berjaya log masuk, kami perlu melompat pengguna ke halaman yang ditentukan. Dalam Laravel, terdapat dua kaedah pelaksanaan, seperti berikut.

Kaedah Pengawal

Kami boleh mengubah hala ke halaman yang ditentukan dengan menambahkan kaedah yang disahkan() dalam pengawal LoginController. Kaedah ini akan dipanggil secara automatik selepas pengesahan pengguna berjaya. Kod pengawal LoginController yang diubah suai adalah seperti berikut:

use IlluminateHttpRequest;

public function login(Request $request)
{
    $credentials = $request->only('email', 'password');

    if (Auth::attempt($credentials)) {
        return redirect()->intended('/home');
    }

    return back()->withErrors(
        ['email' => '用户名或密码错误']
    );
}

protected function authenticated(Request $request, $user)
{
    return redirect('/home');
}

Dalam kod di atas, kita boleh melihat kaedah yang disahkan(), yang mengubah hala pengguna ke halaman /home.

Kaedah penghalaan

Kami juga boleh melaksanakan pengalihan dengan mendaftarkan laluan selepas berjaya log masuk. Dalam fail web.php, kami mendaftarkan laluan berikut:

Route::get('/home', function () {
    return view('home');
})->name('home');

Route::group(['middleware' => 'auth'], function () {
    Route::get('/', function () {
        return redirect()->route('home');
    });
});

Dalam kod di atas, kami telah mendaftarkan laluan root lalai / dalam perisian tengah auth Apabila pengguna berjaya log masuk, ia akan mengubah hala secara automatik ke /. laman utama.

Ringkasan

Di atas ialah kaedah untuk log masuk dan lompat pengguna dalam Laravel. Fungsi pengesahan identiti yang disediakan oleh Laravel memberikan bantuan besar untuk kami melaksanakan log masuk pengguna dengan pantas. Pada masa yang sama, melalui pengawal dan penghalaan, kami juga boleh mengawal lompatan pengguna secara terperinci.

Atas ialah kandungan terperinci lompat 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
Artikel sebelumnya:Adakah prestasi laravel5 lemah?Artikel seterusnya:Adakah prestasi laravel5 lemah?