>  기사  >  PHP 프레임워크  >  Laravel에서 API 인증을 위해 미들웨어를 사용하는 방법

Laravel에서 API 인증을 위해 미들웨어를 사용하는 방법

WBOY
WBOY원래의
2023-11-02 08:43:07943검색

Laravel에서 API 인증을 위해 미들웨어를 사용하는 방법

Laravel에서 API 인증을 위해 미들웨어를 사용하는 방법

미들웨어는 Laravel 프레임워크에서 매우 중요한 역할을 하며 HTTP 요청이 애플리케이션에 도달하기 전후에 일부 코드 로직을 실행하는 데 사용할 수 있습니다. API 애플리케이션을 개발할 때 일반적으로 합법적인 사용자만 중요한 데이터에 액세스하거나 API를 작동할 수 있도록 사용자를 인증해야 합니다.

이 글에서는 API 인증을 위한 미들웨어 사용 방법을 소개합니다. 구체적인 예는 Laravel 프레임워크를 기반으로 합니다. API 인터페이스를 보호하기 위해 기본 토큰 인증 체계를 구현할 것입니다.

먼저 토큰을 검증하기 위한 미들웨어를 만들어야 합니다. 다음 명령을 실행하여 "ApiAuthMiddleware"라는 미들웨어를 생성합니다.

php artisan make:middleware ApiAuthMiddleware

작업이 성공하면 app/Http/Middleware 디렉터리에 생성된 미들웨어 파일이 표시됩니다.

다음으로 ApiAuthMiddleware에서 authenticate() 메소드를 구현하여 요청의 토큰이 유효한지 확인합니다.

<?php

namespace AppHttpMiddleware;

use Closure;
use IlluminateHttpRequest;

class ApiAuthMiddleware
{
    public function handle(Request $request, Closure $next)
    {
        $token = $request->header('Authorization');

        if (!$token) {
            return response()->json(['message' => 'Token not provided'], 401);
        }

        // 这里可根据具体业务逻辑来验证Token的有效性,比如查询数据库或使用第三方服务进行验证

        if ($token !== 'valid_token') {
            return response()->json(['message' => 'Invalid Token'], 401);
        }

        // Token验证通过,继续执行请求
        return $next($request);
    }
}

위 코드에서는 먼저 요청 헤더에서 토큰을 가져온 다음 특정 비즈니스를 기반으로 합니다. 논리 토큰의 유효성을 확인합니다. 토큰이 없거나 유효성 검사에 실패하면 401 Unauthorized 오류가 반환됩니다. 그렇지 않으면 요청을 다음 미들웨어 또는 경로 처리기로 전달합니다.

다음으로, 모든 API 요청에서 토큰 인증이 이루어지도록 ApiAuthMiddleware를 글로벌 미들웨어로 등록해야 합니다. app/Http/Kernel.php 파일의 $routeMiddleware 배열에 다음 코드를 추가합니다:

protected $routeMiddleware = [
    // ...
    'api.auth' => AppHttpMiddlewareApiAuthMiddleware::class,
];

위 코드에서는 ApiAuthMiddleware를 'api.auth' 미들웨어 별칭으로 등록합니다.

이제 API 인증이 필요한 경로나 컨트롤러 메서드에서 'api.auth' 미들웨어를 사용할 수 있습니다. 예는 다음과 같습니다.

<?php

namespace AppHttpControllers;

use IlluminateHttpRequest;

class ApiController extends Controller
{
    public function __construct()
    {
        $this->middleware('api.auth');
    }

    public function getData(Request $request)
    {
        return response()->json(['message' => 'Authorized'], 200);
    }
}

위 코드에서는 ApiController 생성자의 middleware() 메서드를 사용하여 해당 컨트롤러의 모든 메서드에 'api.auth' 미들웨어를 적용하고 있습니다. getData() 메소드에서는 간단한 인증 성공 메시지를 반환합니다.

이제 "/api/data"에 대한 GET 요청을 시작하면 먼저 ApiAuthMiddleware에 의해 요청이 인증됩니다. 요청의 토큰이 유효하면 성공적인 인증 메시지가 반환되고, 그렇지 않으면 401 Unauthorized 오류가 반환됩니다.

요약

API 인증을 위한 미들웨어를 사용하면 API 인터페이스를 쉽게 보호하고 합법적인 사용자에게만 액세스를 허용할 수 있습니다. 이번 글에서는 커스텀 미들웨어를 생성하고 사용하여 토큰의 유효성을 검증하고 글로벌 미들웨어로 등록하는 방법을 알아보았습니다.

물론 이는 기본적인 예일 뿐이므로 비즈니스 요구 사항에 따라 인증 논리를 확장하고 사용자 정의할 수 있습니다. 동시에 OAuth, JWT 등과 같은 다른 유형의 인증 방법을 사용할 수도 있습니다. Laravel 프레임워크의 강력한 미들웨어 기능은 API 인증을 위한 유연하고 쉽게 확장 가능한 솔루션을 제공합니다.

위 내용은 Laravel에서 API 인증을 위해 미들웨어를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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