>  기사  >  백엔드 개발  >  Laravel Sanctum을 사용한 PHP 보안 검증

Laravel Sanctum을 사용한 PHP 보안 검증

王林
王林원래의
2023-07-26 17:58:57952검색

Laravel Sanctum을 사용한 PHP 보안 확인

개요:
현대 웹 개발에서 보안 확인은 중요한 측면입니다. Laravel Sanctum은 Laravel에서 제공하는 간단하고 유연한 인증 가드로, 프런트엔드 및 백엔드 분리 애플리케이션에 사용할 수 있습니다. 이 글에서는 Laravel Sanctum을 사용하여 PHP 보안 검증을 구현하는 방법을 소개하고 관련 코드 예제를 제공합니다.

1단계: Laravel Sanctum 설치

먼저 Laravel 프로젝트에 Sanctum 확장 패키지를 설치하세요. Composer를 사용하여 다음 명령을 설치하고 실행할 수 있습니다:

composer require laravel/sanctum

2단계: Sanctum 구성

설치가 완료되면 Sanctum을 구성해야 합니다. 프로젝트 루트 디렉터리에서 config/app.php 파일을 열고 providers 배열을 찾은 후 다음 코드를 추가합니다. config/app.php 文件,找到 providers 数组,并添加以下代码:

'providers' => [

    // ...

    LaravelSanctumSanctumServiceProvider::class,

],

然后,运行以下命令来发布 Sanctum 的配置文件和数据库迁移文件:

php artisan vendor:publish --provider="LaravelSanctumSanctumServiceProvider"

接着,运行以下命令来执行数据库迁移:

php artisan migrate

步骤三:配置身份验证驱动程序

在设置过程中,需要选择使用 Sanctum 作为默认的身份验证驱动程序。打开 config/auth.php 文件,找到 guards 数组,并将默认的 guard 设置为 sanctum

'defaults' => [
    'guard' => 'sanctum',
    // ...
],

步骤四:启用 Sanctum 中间件

Sanctum 需要使用自己的中间件来处理身份验证。为了启用 Sanctum,需要将 Authenticate 中间件替换为 Sanctum 提供的中间件。打开 app/Http/Kernel.php 文件,将以下代码添加到 $routeMiddleware 数组中:

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

步骤五:生成 Sanctum API Token

Sanctum 提供了 API Token 来进行身份验证。API Token 可以通过以下代码来生成:

use LaravelSanctumHasApiTokens;

class User extends Authenticatable
{
    use HasApiTokens;
}

该代码在 User Model 中使用了 HasApiTokens

Route::middleware('auth:sanctum')->group(function () {
    // 这里是需要保护的路由
});

그런 다음 다음 명령을 실행하여 게시합니다. Sanctum 구성 파일 및 데이터베이스 마이그레이션 파일:

use IlluminateHttpRequest;

Route::post('/login', function (Request $request) {
    $credentials = $request->only('email', 'password');
    
    if (Auth::attempt($credentials)) {
        $user = Auth::user();
        $token = $user->createToken('api')->plainTextToken;

        return response()->json([
            'user' => $user,
            'token' => $token,
        ]);
    } else {
        return response()->json(['error' => 'Unauthorized'], 401);
    }
});

다음으로 다음 명령을 실행하여 데이터베이스 마이그레이션을 수행합니다.

rrreee

3단계: 인증 드라이버 구성

설정 프로세스 중에 Sanctum을 다음으로 사용하도록 선택해야 합니다. 기본 인증 드라이버. config/auth.php 파일을 열고 guards 배열을 찾은 다음 기본 가드를 sanctum으로 설정합니다.

rrreee

4단계: 활성화 Sanctum 미들웨어

Sanctum은 인증을 처리하기 위해 자체 미들웨어를 사용해야 합니다. Sanctum을 활성화하려면 Authenticate 미들웨어를 Sanctum에서 제공하는 미들웨어로 교체해야 합니다. app/Http/Kernel.php 파일을 열고 $routeMiddleware 배열에 다음 코드를 추가하세요.

rrreee

5단계: Sanctum API 토큰 생성


Sanctum에서 API 제공 인증을 위한 토큰입니다. API 토큰은 다음 코드로 생성할 수 있습니다.

rrreee

이 코드는 User 모델의 HasApiTokens 특성을 사용하여 사용자를 위한 API 토큰을 생성합니다.

    6단계: 경로 보호
  • 보안 확인을 위해 Sanctum을 사용한 후 다음 코드를 사용하여 인증이 필요한 경로를 보호할 수 있습니다.
rrreee🎜위 코드는 Sanctum 미들웨어를 적용하여 사용자의 API 토큰을 확인합니다. 🎜🎜7단계: 인증🎜🎜사용자가 프런트엔드 애플리케이션을 통해 요청을 제출하면 다음 코드를 사용하여 인증할 수 있습니다. 🎜rrreee🎜위 코드는 사용자가 제공한 이메일과 비밀번호를 통해 인증한 후 반환됩니다. 사용자 정보와 API 토큰이 포함된 JSON 응답. 🎜🎜요약: 🎜Laravel Sanctum을 사용하면 PHP 애플리케이션의 보안 검증을 쉽게 구현할 수 있습니다. 이 문서에서는 Laravel Sanctum을 설치하고 구성하는 방법을 설명하고 관련 코드 예제를 제공합니다. 이 글이 초보자에게 도움이 되고 더 많은 사람들이 Laravel Sanctum을 배우고 사용하도록 영감을 줄 수 있기를 바랍니다. 🎜🎜참조 링크: 🎜🎜🎜[Laravel Sanctum GitHub 공식 문서](https://github.com/laravel/sanctum)🎜🎜

위 내용은 Laravel Sanctum을 사용한 PHP 보안 검증의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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