>  기사  >  PHP 프레임워크  >  Laravel에서 라우팅을 숨기는 방법

Laravel에서 라우팅을 숨기는 방법

PHPz
PHPz원래의
2023-04-14 16:54:08640검색

Laravel은 널리 사용되는 PHP 프레임워크이며 개발자는 매우 강력한 라우팅 시스템을 제공합니다. Laravel의 라우팅을 사용하면 URL을 특정 백엔드 비즈니스 로직 코드에 쉽게 매핑할 수 있으므로 RESTful API 서비스 및 웹 페이지를 쉽게 작성할 수 있습니다. 하지만 실제 애플리케이션에서는 특정 상황에서만 일부 경로에 액세스하고 싶을 때가 있습니다. 이때 Laravel에서 제공하는 숨겨진 라우팅 기능은 매우 유용합니다.

Laravel 숨겨진 라우팅이란 무엇입니까?

Laravel 숨겨진 라우팅은 라우팅 경로가 라우팅 정의에 직접 표시되지 않는다는 의미입니다. 해당 경로는 특정 매개변수나 특정 메서드 호출을 통해서만 액세스할 수 있습니다. 숨겨진 라우팅의 목적은 비밀번호 재설정, 로그인 및 기타 운영 인터페이스와 같은 일부 민감한 데이터를 악의적인 액세스로부터 보호하는 것입니다.

Laravel에서 숨겨진 라우팅을 구현하는 방법은 무엇입니까?

Laravel에서 숨겨진 라우팅을 구현하는 방법에는 여러 가지가 있습니다. 다음은 일반적으로 사용되는 두 가지 방법입니다.

  1. 이름이 지정된 경로 사용

Laravel의 이름이 지정된 경로는 경로 별칭을 정의하는 기능을 제공합니다. 라우팅 정의에서 "->name()" 메서드를 사용하여 별칭을 정의할 수 있습니다. 예:

Route::get('index', 'HomeController@index')->name('home');

이 코드 줄은 'index' 경로에 해당하는 "home"이라는 라우팅 별칭을 정의합니다. .

경로를 호출할 때 경로와 동일한 액세스 효과를 얻으려면 별칭만 사용해야 합니다.

<a href="{{ route(&#39;home&#39;) }}">Home</a>

이 경우 사용자는 URL 링크를 클릭해야만 경로에 액세스할 수 있으며 수동으로 경로를 입력할 수 없습니다. URL 경로 액세스.

  1. 미들웨어 사용

라라벨은 요청과 응답을 처리하기 위한 미들웨어(Middleware) 기능을 제공합니다. 미들웨어의 특성을 이용하여 경로에 대한 접근을 제어할 수 있습니다. 먼저 사용자 정의 미들웨어를 생성해야 합니다.

php artisan make:middleware CheckPass

이 코드 줄은 app/Http/Middleware 디렉토리에 CheckPass라는 미들웨어 클래스를 생성합니다. 이 클래스에서 입력 매개변수에 대한 확인 방법을 정의할 수 있습니다. 예를 들면 다음과 같습니다.

class CheckPass
{
    public function handle($request, Closure $next)
    {
        if ($request->has('password') && $request->input('password') === 'password') {
            return $next($request);
        }

        return abort(403, 'Unauthorized action.');
    }
}

A CheckPass 미들웨어는 사용자가 전달한 비밀번호 매개변수가 "password"인지 확인하기 위해 여기에 정의되어 있으며, 조건을 충족하면 액세스가 허용됩니다. 허용되지 않으면 오류 페이지를 반환합니다.

다음으로 경로 정의에서 이 미들웨어 보호를 사용합니다.

Route::get('/example', 'ExampleController@showResult')->middleware('protect');

경로를 호출할 때 사용자는 올바른 응답을 얻기 위해 GET 요청을 통해 "password"라는 매개변수를 보내야 합니다.

요약

Laravel에서 제공하는 라우팅 시스템은 매우 유연하고 사용하기 쉽지만, 실제 애플리케이션 시나리오에서는 Laravel 숨겨진 라우팅과 같은 좀 더 고급 처리 로직이 필요한 경우가 많습니다. 명명된 라우팅이나 미들웨어를 사용하여 이 기능을 구현할 수 있으며, 이를 통해 데이터와 애플리케이션의 보안을 보호하면서 사용자에게 더 나은 경험을 제공할 수 있습니다.

위 내용은 Laravel에서 라우팅을 숨기는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.