Ralat Laravel 5.5 401: bagaimana untuk menyelesaikannya?
Laravel ialah rangka kerja PHP yang sangat popular yang meningkatkan kecekapan pembangunan aplikasi web. Walau bagaimanapun, anda mungkin menghadapi ralat 401 semasa menggunakan Laravel. Ralat ini biasanya disebabkan oleh pengesahan gagal atau sesi tamat tempoh, tetapi ia boleh disebabkan oleh sebab lain. Artikel ini akan menerangkan cara menyelesaikan ralat Laravel 5.5 401.
Pertama sekali, pastikan pengesahan anda betul. Dalam Laravel, anda boleh menggunakan banyak kaedah pengesahan, seperti menggunakan fasad Auth Laravel sendiri atau menggunakan Laravel Passport untuk pengesahan OAuth. Pastikan anda telah melengkapkan pengesahan identiti anda sebelum menyerahkan permintaan anda.
Contohnya, jika anda menggunakan fasad Auth untuk mengesahkan pengguna anda, pastikan anda menggunakan perisian tengah auth untuk mengesahkan akses mereka. Anda boleh menggunakannya dalam definisi laluan anda seperti ini:
Route::get('/dashboard', ['middleware' => ['auth'], function () { // 此处为您的代码 }]);
Semak sama ada laluan anda betul. Jika penghalaan tidak betul, kod ralat 401 akan dikembalikan. Pastikan laluan anda ditakrifkan dengan betul dan sepadan dengan pengawal dan kaedah anda. Anda boleh melihat laluan anda dalam pelayar atau menggunakan arahan "php artisan route:list" dalam terminal.
Laravel mendayakan perlindungan CSRF secara lalai untuk mengelakkan serangan permintaan merentas tapak. Jika permohonan anda menggunakan permintaan POST, PUT atau DELETE, anda mesti memasukkan token CSRF dalam permintaan. Jika anda tidak memasukkan token CSRF, ralat 401 akan dikembalikan.
Untuk menyelesaikan masalah ini, anda boleh menggunakan arahan @csrf dalam Laravel atau menambah token CSRF pada permintaan semasa menghantar permintaan AJAX. Sebagai contoh, untuk permintaan AJAX, anda boleh menambah kod berikut pada fail JavaScript anda:
$.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } });
Jika anda menggunakan Laravel 5.5 atau lebih baru, dan menggunakan penghalaan API, anda mungkin menghadapi isu CORS. Cross-Origin Resource Sharing (CORS) ialah mekanisme antara pelayar web dan pelayan web yang membolehkan halaman web meminta sumber dari satu domain ke domain lain. Jika CORS tidak dikonfigurasikan dengan betul, penyemak imbas akan menghentikan permintaan dan mengembalikan ralat 401.
Untuk menyelesaikan masalah ini, anda boleh menggunakan sambungan barryvdh/laravel-cors dalam Laravel. Sambungan ini akan membolehkan anda menyesuaikan peraturan CORS dan menyelesaikan isu CORS dalam aplikasi Laravel anda.
Akhir sekali, semak untuk melihat sama ada sesi anda telah tamat tempoh. Jika sesi telah tamat tempoh, aplikasi anda tidak akan dapat mengesahkan pengguna dan mengembalikan ralat 401. Dalam Laravel, pengurus sesi menggunakan kuki untuk menjejak sesi pengguna, jadi jika pengguna menutup pelayar web mereka, sesi itu boleh tamat tempoh serta-merta. Masa tamat tempoh pengurus sesi boleh dikonfigurasikan dalam config/session.php.
Masalah yang sama mungkin berlaku jika pengguna tiba-tiba mengakses apl anda selepas tempoh yang lama tidak aktif. Keadaan ini boleh diselesaikan dengan mengkonfigurasi pilihan "seumur hidup" dan "expire_on_close" dalam config/session.php.
Ringkasan
Ralat 401 boleh menjadi salah satu ralat biasa dalam aplikasi Laravel. Mana-mana situasi di atas boleh mengakibatkan ralat 401. Jadi jika anda menghadapi ralat 401, pastikan anda menyemak aspek seperti pengesahan, penghalaan, perlindungan CSRF, CORS dan sesi untuk mencari masalah. Sebaik sahaja anda menemui masalah itu, anda boleh membetulkannya dengan mudah dan memastikan aplikasi Laravel anda berfungsi dengan betul.
Atas ialah kandungan terperinci ralat laravel5.5 401. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!