Pengesahan log masuk pengguna ialah ciri penting semasa membangunkan aplikasi web. Rangka kerja Laravel menyediakan pelbagai cara untuk melaksanakan pengesahan pengguna, dan juga menyediakan sistem pengesahan identiti lalai (iaitu LaravelIlluminateAuth) untuk memudahkan pembangun melaksanakan pendaftaran pengguna, log masuk, log keluar dan fungsi lain dalam aplikasi.
Selepas pengesahan log masuk berjaya, kami sering ingin melompat ke halaman tertentu, seperti halaman profil pengguna atau halaman fungsi tertentu. Dalam rangka kerja Laravel, sangat mudah untuk melaksanakan lompatan selepas log masuk.
Artikel ini akan memperkenalkan beberapa cara untuk pengguna melompat selepas log masuk dalam rangka kerja Laravel.
Sistem pengesahan identiti yang disediakan oleh LaravelIlluminateAuth dikonfigurasikan dengan lompatan selepas log masuk pengguna secara lalai. Dalam fail konfigurasi config/auth.php, terdapat konfigurasi lalai berikut:
'redirect' => [ 'login' => '/login', 'logout' => '/logout', 'home' => '/home', 'register' => '/register', 'verify' => '/email/verify', 'reset' => '/password/reset', 'confirm' => '/password/confirm', ],
Antaranya, 'home' mewakili halaman lompat selepas log masuk, dan lalai ialah laluan /home. Jika anda perlu mengubah suai halaman lompat lalai, anda hanya perlu mengubah suai laluan ke halaman yang anda mahukan.
Jika anda perlu menentukan halaman lompat secara manual selepas log masuk dalam pengawal, kami boleh menggunakan contoh RedirectResponse yang disediakan oleh rangka kerja Laravel dan melaksanakannya melalui ubah hala( ) kaedah.
Sebagai contoh, dalam pengawal pengguna, kita boleh mengatasi kaedah authenticated() dalam ciri IlluminateFoundationAuthAuthenticatesUsers:
use IlluminateSupportFacadesAuth; class UserController extends Controller { use AuthenticatesUsers; protected function authenticated(Request $request, $user) { return redirect()->route('user.show', $user->id); } }
Kod di atas boleh melompat ke pengguna yang ditentukan selepas pengguna berjaya log masuk. Halaman maklumat.
Kadangkala, kita perlu menetapkan laluan lompat selepas pengguna log masuk ke halaman sebelum log masuk. Anda boleh menggunakan fungsi session() dan URL yang disediakan oleh Laravel:: kaedah sebelumnya().
Sebagai contoh, dalam pengawal log masuk, kita boleh melaksanakannya seperti ini:
use IlluminateHttpRequest; use IlluminateSupportFacadesAuth; use IlluminateSupportFacadesURL; class LoginController extends Controller { public function login(Request $request) { $credentials = $request->only('email', 'password'); if (Auth::attempt($credentials)) { return redirect()->intended(URL::previous()); } return back()->withErrors(['email' => '登录失败']); } }
Dalam kod di atas, kami menggunakan kaedah redirect()->intended(), yang akan mengubah hala pengguna Ubah hala ke halaman yang anda lawati sebelum log masuk. Jika pengguna tidak pernah melawat halaman lain sebelum ini, mereka akan diubah hala ke laluan lompat log masuk lalai.
perisian tengah rangka kerja Laravel menyediakan fungsi pengesahan identiti dan kebenaran yang mudah. Kami boleh menentukan laluan lompat selepas log masuk dalam perisian tengah.
Sebagai contoh, kami boleh mengkonfigurasi laluan lompat selepas log masuk dalam perisian tengah auth:
namespace AppHttpMiddleware; use IlluminateAuthMiddlewareAuthenticate as Middleware; class Authenticate extends Middleware { protected function redirectTo($request) { if (! $request->expectsJson()) { return route('login'); // 设置默认的跳转路径 } } }
Dalam kod di atas, kami menggunakan kaedah redirectTo() untuk mengendalikan permintaan log masuk yang gagal. Jika permintaan dijangka mengembalikan data dalam format json, ralat 401 akan dikembalikan secara langsung, jika tidak, pengguna akan dialihkan ke halaman log masuk.
Jika anda perlu menentukan laluan lompatan lain, anda hanya perlu mengubah suai alias penghalaan dalam penyata pulangan.
Di atas ialah beberapa cara untuk melaksanakan lompatan selepas log masuk pengguna dalam rangka kerja Laravel. Kaedah khusus yang dipilih bergantung pada keperluan sebenar pembangun dan senario pembangunan. Tidak kira kaedah yang digunakan, ia boleh membantu kami merealisasikan fungsi pengesahan pengguna dan melompat selepas log masuk dengan mudah dan cepat.
Atas ialah kandungan terperinci Lompat selepas log masuk laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!