Laravel 5.7이 출시되면서 많은 사용자들이 액세스 라우팅 문제를 보고했습니다. 이 문제의 출현으로 인해 개발 과정에서 많은 시간을 낭비하게 될 수 있습니다. 이 문제를 해결하는데 도움을 주기 위해, 이 글에서는 Laravel 5.7이 라우팅에 접근할 수 없는 문제에 대한 해결 방법을 자세히 소개하겠습니다.
먼저 Laravel 5.7의 몇 가지 새로운 변경 사항을 이해해야 합니다. 이로 인해 이전 코드가 제대로 실행되지 않을 수 있습니다. 가장 중요한 변경 사항 중 하나는 CSRF 보호 미들웨어가 기본적으로 추가된다는 것입니다. 이 미들웨어는 사용자가 제출한 양식 데이터가 애플리케이션에서 제공되었는지 확인하고 CSRF 공격으로부터 애플리케이션을 방지할 수 있습니다.
CSRF 보호 미들웨어는 Laravel 5.6에 이미 존재하지만 기본적으로 활성화되어 있지 않습니다. 그러나 Laravel 5.7에서는 Laravel 팀이 기본적으로 이 미들웨어를 활성화했습니다. 따라서 Laravel 5.7에서는 양식을 사용하여 데이터를 제출할 때 CSRF 토큰을 추가해야 합니다.
해결책:
Laravel 5.7에서 라우팅에 액세스할 수 없는 문제를 해결하는 방법에는 두 가지가 있습니다. 첫 번째 방법은 web.php 파일에 CSRF 토큰을 추가하는 것입니다. 두 번째 방법은 CSRF 보호 미들웨어를 비활성화하는 것입니다.
방법 1: web.php 파일에 CSRF 토큰을 추가합니다.
웹 미들웨어 그룹은 Laravel 5.7 코드의 RouteServiceProvider.php에서 기본적으로 사용됩니다. 따라서 웹에서 CSRF 토큰을 추가하는 가장 쉬운 방법입니다. php 파일은 {{ csrf_field() }} 메소드를 사용하세요.
예를 들어 POST 요청을 처리하는 경로가 있는 경우:
Route::post('/foo', function () {
return 'Hello World';
});
다음에 {{ csrf_field() }를 추가해야 합니다. the form } CSRF 토큰을 생성하는 방법:
4d7a02db55d48fb4795b6f9a4532230c
{{ csrf_field() }} <!-- ... -->
f5a47148e367a6035fd7a2faa965022e
이 방법을 사용하면 Laravel 5.7 애플리케이션이 POST를 정상적으로 처리할 수 있습니다. .
방법 2: CSRF 보호 미들웨어 비활성화
CSRF 보호 미들웨어 비활성화는 Laravel 5.7이 라우팅에 액세스할 수 없는 문제를 해결하는 또 다른 방법입니다. 이 접근 방식은 Laravel 애플리케이션의 보안을 약간 저하시킬 수 있지만 애플리케이션이 CSRF 공격의 위험에 노출되지 않은 경우 가능합니다.
CSRF 보호 미들웨어를 비활성화하려면 검증CsrfToken 클래스의 $just 속성에 무시할 URI를 추가해야 합니다.
app/Http/Middleware/VerifyCsrfToken.php 파일을 열고 $just 속성에 무시하려는 경로를 추가하세요.
protected $just = [
'your-route-to-ignore'
];
예를 들어, "등록" 경로를 무시하세요.
protected $just = [
'register'
];
이 방법을 사용하면 Laravel 5.7 애플리케이션이 모든 요청을 정상적으로 처리할 수 있습니다.
결론:
일반적으로 Laravel 5.7에서 경로에 액세스할 수 없는 문제는 주로 CSRF 보호 미들웨어가 기본적으로 활성화되어 있기 때문에 발생합니다. 따라서 개발 중에 이 문제가 발생하면 이 두 가지 방법을 시도하여 해결할 수 있습니다. CSRF 보호 미들웨어를 비활성화하려면 민감하거나 중요한 데이터와 관련되지 않은 경로에만 사용해야 합니다. 이 방법은 Laravel 애플리케이션의 보안을 약간 저하시킬 수 있으므로 애플리케이션의 보안을 보장하기 위해 방법 1을 사용하는 것이 좋습니다.
위 내용은 Laravel 5.7은 라우팅에 접근할 수 없습니다의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!