>  기사  >  PHP 프레임워크  >  Laravel에서 API를 작성할 때 확인하는 방법

Laravel에서 API를 작성할 때 확인하는 방법

PHPz
PHPz원래의
2023-05-20 19:30:53888검색

웹 API의 인기로 인해 API 보안이 더욱 중요해졌습니다. Laravel에서는 내장된 검증 규칙과 미들웨어를 사용하여 API 요청을 검증하고 보호할 수 있습니다.

  1. Laravel에 내장된 유효성 검사 규칙 사용

Laravel은 "required"(필수), "email"(이메일 형식) 등과 같은 일련의 유효성 검사 규칙을 제공합니다. 인터페이스 매개변수의 정확성을 보장하기 위해 이러한 규칙을 API 인터페이스에 적용할 수 있습니다.

예를 들어 등록된 API 인터페이스의 매개변수를 확인하려면 다음 코드를 사용하면 됩니다.

public function register(Request $request) {
    $validatedData = $request->validate([
        'name' => 'required|string|max:255',
        'email' => 'required|string|email|max:255|unique:users',
        'password' => 'required|string|min:8',
    ]);

    // 对请求参数进行处理
    // ...

    // 注册用户
    // ...
}

위 코드에서는 $request->validate() 메서드를 사용하여 요청 매개변수를 확인합니다. . 유효성 검사가 실패하면 Laravel은 자동으로 ValidationException을 발생시키고 예외 핸들러에서 이 예외를 처리해야 합니다.

  1. Laravel에 내장된 미들웨어 사용

Laravel은 API 보안을 강화하기 위해 많은 미들웨어도 제공합니다. 다음은 일반적으로 사용되는 미들웨어입니다.

  • auth: 사용자 인증에 사용되며 로그인한 사용자만 인터페이스에 액세스할 수 있도록 허용합니다.
  • throttle: 공격이나 남용을 방지하기 위해 API 인터페이스의 요청 빈도를 제한하는 데 사용됩니다.
  • cors: 도메인 간 리소스 공유에 사용되며 도메인 간 요청이 허용됩니다.
  • csrf: 사이트 간 요청 위조 공격을 방지하는 데 사용됩니다.

아래와 같이 라우팅 정의에서 이러한 미들웨어를 직접 사용할 수 있습니다.

// 定义需要认证的API接口
Route::middleware(['auth'])->group(function () {
    Route::post('/api/foo', 'FooController@create');
    Route::put('/api/foo/{id}', 'FooController@update');
});

// 定义允许跨域访问的API接口
Route::middleware(['cors'])->group(function () {
    Route::get('/api/bar', 'BarController@index');
});

// 定义限制请求频率的API接口
Route::middleware(['throttle'])->group(function () {
    Route::get('/api/baz', 'BazController@index');
});
  1. 사용자 정의 미들웨어

Laravel에 내장된 미들웨어를 사용하는 것 외에도 미들웨어를 사용자 정의하여 보다 복잡한 검증 논리를 구현할 수도 있습니다.

예를 들어, API 요청에 토큰 매개변수가 포함되어 있고 토큰이 유효한지 확인하려면 이 기능을 달성하기 위해 사용자 정의 미들웨어를 생성할 수 있습니다.

php artisan make:middleware ValidateToken
public function handle($request, Closure $next)
{
    $token = $request->input('token');

    if (! $token || ! Token::isValid($token)) {
        return response()->json([
            'status' => 'error',
            'message' => 'Invalid token provided',
        ], 401);
    }

    return $next($request);
}

위 코드에서 먼저 "토큰"을 얻습니다. " 매개변수를 요청에 추가하고 토큰이 유효한지 확인하세요. 유효하지 않은 경우 401 상태 코드와 오류 메시지가 반환됩니다. 그렇지 않으면 요청 처리를 계속합니다.

마지막으로 라우트 정의에서 이 사용자 정의 미들웨어를 사용할 수 있습니다:

Route::middleware(['validate_token'])->group(function () {
    Route::post('/api/qux', 'QuxController@create');
});

Summary

Laravel에서는 내장된 유효성 검사 규칙, 미들웨어 및 사용자 정의 미들웨어를 사용하여 API 요청을 검증하고 API 안전을 강화할 수 있습니다. 동시에 API 인터페이스가 남용되거나 공격당하지 않도록 보호하기 위해 특정 비즈니스 요구 사항을 기반으로 보다 복잡한 검증 논리를 구현할 수도 있습니다.

위 내용은 Laravel에서 API를 작성할 때 확인하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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