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.
Sebelum mula menulis kod, kita perlu memastikan syarat berikut:
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.
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.
Selepas pengguna berjaya log masuk, kami perlu melompat pengguna ke halaman yang ditentukan. Dalam Laravel, terdapat dua kaedah pelaksanaan, seperti berikut.
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.
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.
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!