Rumah >pembangunan bahagian belakang >tutorial php >Mengamankan Sesi Laravel dengan Penjanaan ID
Memahami Penjanaan Sesi Laravel
Penjanaan ID Sesi memberikan pengenal pasti yang baru dan unik kepada sesi pengguna, mengurangkan kelemahan penetapan sesi. Walaupun Laravel secara automatik menanam semula ID semasa pengesahan, penjanaan semula manual sering penting untuk keselamatan yang dipertingkatkan.mari kita menggambarkan pengendalian sesi yang selamat dalam sistem pengurusan tetapan pengguna:
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Hash; use App\Http\Requests\UpdateSettingsRequest; use Illuminate\Support\Facades\Auth; class UserSettingsController extends Controller { public function updateSecuritySettings(UpdateSettingsRequest $request) { $user = $request->user(); // Update security-related user settings $user->update([ 'password' => Hash::make($request->new_password), 'two_factor_enabled' => $request->two_factor_enabled, ]); // Log out user from other devices Auth::logoutOtherDevices($request->current_password); // Generate a new session ID $request->session()->regenerate(); return redirect() ->route('settings.security') ->with('status', 'Security settings updated successfully.'); } public function elevateSessionAccess(Request $request) { $request->validate([ 'password' => ['required', 'current_password'] ]); // Grant elevated session permissions and regenerate session ID $request->session()->put('elevated_access', true); $request->session()->regenerate(); return redirect()->intended(); } public function terminateAllSessions(Request $request) { // Completely invalidate all existing sessions $request->session()->invalidate(); return redirect() ->route('login') ->with('status', 'All sessions have been terminated.'); } }Kod ini mempamerkan tiga senario keselamatan sesi kritikal:
updateSecuritySettings
elevateSessionAccess
terminateAllSessions
Atas ialah kandungan terperinci Mengamankan Sesi Laravel dengan Penjanaan ID. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!