Laravel 5.5 401 오류: 어떻게 해결하나요?
Laravel은 웹 애플리케이션 개발 효율성을 향상시키는 매우 인기 있는 PHP 프레임워크입니다. 그러나 Laravel을 사용할 때 401 오류가 발생할 수 있습니다. 이 오류는 일반적으로 인증 실패 또는 세션 만료로 인해 발생하지만 다른 이유로 인해 발생할 수도 있습니다. 이 문서에서는 Laravel 5.5 401 오류를 해결하는 방법에 대해 설명합니다.
먼저 인증이 올바른지 확인하세요. Laravel에서는 Laravel 자체 Auth Facade를 사용하거나 OAuth 인증을 위해 Laravel Passport를 사용하는 등 다양한 인증 방법을 사용할 수 있습니다. 요청을 제출하기 전에 신원 확인을 완료했는지 확인하세요.
예를 들어, Auth 파사드를 사용하여 사용자를 인증하는 경우 인증 미들웨어를 사용하여 액세스를 인증해야 합니다. 다음과 같이 경로 정의에 사용할 수 있습니다.
Route::get('/dashboard', ['middleware' => ['auth'], function () { // 此处为您的代码 }]);
경로가 올바른지 확인하세요. 라우팅이 올바르지 않으면 오류 코드 401이 반환됩니다. 경로가 올바르게 정의되어 있고 컨트롤러 및 메서드와 일치하는지 확인하세요. 브라우저에서 또는 터미널에서 "php artisan Route:list" 명령을 사용하여 경로를 볼 수 있습니다.
Laravel은 교차 사이트 요청 공격을 방지하기 위해 기본적으로 CSRF 보호를 활성화합니다. 애플리케이션이 POST, PUT 또는 DELETE 요청을 사용하는 경우 요청에 CSRF 토큰을 포함해야 합니다. CSRF 토큰을 포함하지 않으면 401 오류가 반환됩니다.
이 문제를 해결하려면 Laravel에서 @csrf 지시어를 사용하거나 AJAX 요청을 보낼 때 요청에 CSRF 토큰을 추가하면 됩니다. 예를 들어, AJAX 요청의 경우 JavaScript 파일에 다음 코드를 추가할 수 있습니다:
$.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } });
Laravel 5.5 이상을 사용하고 API 라우팅을 사용하는 경우 CORS 문제가 발생할 수 있습니다. CORS(Cross-Origin Resource Sharing)는 웹 페이지가 한 도메인에서 다른 도메인으로 리소스를 요청할 수 있도록 하는 웹 브라우저와 웹 서버 간의 메커니즘입니다. CORS가 올바르게 구성되지 않으면 브라우저는 요청을 중지하고 401 오류를 반환합니다.
이 문제를 해결하려면 Laravel에서 barryvdh/laravel-cors 확장을 사용할 수 있습니다. 이 확장을 사용하면 CORS 규칙을 사용자 정의하고 Laravel 애플리케이션에서 CORS 문제를 해결할 수 있습니다.
마지막으로 세션이 만료되었는지 확인하세요. 세션이 만료된 경우 애플리케이션은 사용자를 인증할 수 없으며 401 오류를 반환합니다. Laravel에서 세션 관리자는 쿠키를 사용하여 사용자 세션을 추적하므로 사용자가 웹 브라우저를 닫으면 세션이 즉시 만료될 수 있습니다. 세션 관리자의 만료 시간은 config/session.php에서 구성할 수 있습니다.
사용자가 장기간 활동이 없었다가 갑자기 앱에 액세스하는 경우에도 동일한 문제가 발생할 수 있습니다. 이 상황은 config/session.php에서 "lifetime" 및 "expire_on_close" 옵션을 구성하여 해결할 수 있습니다.
Summary
401 오류는 Laravel 애플리케이션에서 흔히 발생하는 오류 중 하나일 수 있습니다. 위의 상황 중 하나라도 401 오류가 발생할 수 있습니다. 따라서 401 오류가 발생하면 인증, 라우팅, CSRF 보호, CORS 및 세션과 같은 측면을 확인하여 문제를 찾으십시오. 문제를 발견하면 쉽게 문제를 해결하고 Laravel 애플리케이션이 제대로 작동하는지 확인할 수 있습니다.
위 내용은 laravel5.5 401 오류의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!