>  기사  >  백엔드 개발  >  通过 Lumen Passport 实现 PHP 安全验证

通过 Lumen Passport 实现 PHP 安全验证

WBOY
WBOY원래의
2023-07-25 13:34:451737검색

Lumen Passport를 통한 PHP 보안 검증

웹 애플리케이션 개발 시 사용자 인증과 권한 제어는 무시할 수 없는 중요한 요소입니다. 애플리케이션의 보안을 보장하려면 사용자를 인증하고 특정 사용자에게 다양한 권한을 부여하는 방법을 구현해야 합니다. PHP 개발에서 Lumen은 웹 애플리케이션을 빠르게 구축하는 데 도움이 되는 가볍고 효율적인 프레임워크입니다. Lumen Passport는 Laravel Passport를 기반으로 하는 Lumen 확장으로 간단하고 강력한 인증을 구현하는 데 도움이 됩니다.

이 기사에서는 Lumen Passport를 통해 PHP 보안 확인을 구현하여 애플리케이션이 승인된 사용자만 액세스할 수 있도록 하는 방법을 소개합니다.

먼저 Lumen Passport 확장 패키지를 설치해야 합니다. 터미널에 프로젝트 루트 디렉터리를 입력하고 다음 명령을 실행합니다.

composer require dusterio/lumen-passport

설치가 완료되면 Passport 서비스 공급자를 등록해야 합니다. bootstrap/app.php 파일을 열고 Register Service Providers 섹션에 다음 코드를 추가합니다: bootstrap/app.php 文件,在 Register Service Providers 部分添加以下代码:

$app->register(DusterioLumenPassportPassportServiceProvider::class);

然后,在 bootstrap/app.php 的开头添加以下引用:

use DusterioLumenPassportLumenPassport;

接下来,我们需要生成密钥和数据库迁移文件。在终端中运行以下命令:

php artisan passport:keys
php artisan passport:client --password
php artisan migrate

生成密钥和数据库迁移文件后,我们可以开始配置身份验证。

首先,打开 config/auth.php 文件,将默认驱动从 token 更改为 passport

'defaults' => [
    'guard' => 'api',
    'passwords' => 'users',
    'provider' => 'users',
    'hash' => false,
],

// ...

'guards' => [
    'api' => [
        'driver' => 'passport',
        'provider' => 'users',
    ],
],

然后,打开 app/Providers/AuthServiceProvider.php 文件,并将 LaravelPassportPassport::routes() 方法添加到 boot() 方法中:

use LaravelPassportPassport;

// ...

public function boot()
{
    $this->registerPolicies();

    Passport::routes();
}

接下来,我们需要在用户模型中使用 Passport。打开 app/User.php 文件,并在类顶部添加以下引用:

use LaravelPassportHasApiTokens;

然后,将 HasApiTokens trait 添加到 User 类中:

use LaravelPassportHasApiTokens;

class User extends Authenticatable
{
    use HasApiTokens;
    
    // ...
}

现在,我们已经完成了身份验证的配置。接下来,让我们来看一下如何在控制器中使用 Lumen Passport。

首先,我们需要在控制器中使用 Passport。打开你的控制器文件,并在类顶部添加以下引用:

use LaravelPassportPassport;

然后,在需要进行身份验证的方法中调用 Passport::actingAs() 方法。此方法接受一个用户模型实例作为参数,用于模拟用户登录:

public function login()
{
    $user = User::find(1); // 通过用户 ID 获取用户
    Passport::actingAs($user);
    
    // ...
}

当用户登录后,Lumen Passport 会生成一个访问令牌,我们可以使用该令牌来进行接口调用。在需要验证用户身份的方法中,我们可以使用 auth()->user() 来获取当前已登录的用户实例:

public function profile()
{
    $user = auth()->user();
    
    return response()->json([
        'user' => $user,
    ]);
}

通过上述步骤,我们已经成功通过 Lumen Passport 实现了 PHP 安全验证。现在我们可以在应用程序中使用身份验证来保护特定的路由和功能,以确保只有授权的用户可以访问。

总结:

本文介绍了如何通过 Lumen Passport 实现 PHP 安全验证。我们首先安装了 Lumen Passport 扩展包,并生成了密钥和数据库迁移文件。然后,我们通过更改配置和使用 Passport 方法来配置身份验证。最后,在控制器中使用 Passportrrreee

그런 다음 bootstrap/app.php에서 code> 시작 부분에 다음 인용문을 추가합니다. 🎜rrreee🎜 다음으로 키 및 데이터베이스 마이그레이션 파일을 생성해야 합니다. 터미널에서 다음 명령을 실행하세요. 🎜rrreee🎜키 및 데이터베이스 마이그레이션 파일을 생성한 후 인증 구성을 시작할 수 있습니다. 🎜🎜먼저 <code>config/auth.php 파일을 열고 기본 드라이버를 token에서 passport로 변경합니다. 🎜rrreee🎜그런 다음 app/Providers/AuthServiceProvider.php 파일을 열고 LaravelPassportPassport::routes() 메서드를 boot() 메서드에 추가합니다. 🎜rrreee🎜Next , 사용자 모델에서 Passport를 사용해야 합니다. app/User.php 파일을 열고 클래스 상단에 다음 참조를 추가합니다: 🎜rrreee🎜 그런 다음 HasApiTokens 특성을 User class :🎜rrreee🎜이제 인증 구성이 완료되었습니다. 다음으로 컨트롤러에서 Lumen Passport를 사용하는 방법을 살펴보겠습니다. 🎜🎜먼저 컨트롤러에서 <code>Passport를 사용해야 합니다. 컨트롤러 파일을 열고 클래스 상단에 다음 참조를 추가합니다. 🎜rrreee🎜 그런 다음 인증이 필요한 메서드에서 Passport::actingAs() 메서드를 호출합니다. 이 메소드는 사용자 로그인을 시뮬레이션하기 위해 사용자 모델 인스턴스를 매개변수로 허용합니다. 🎜rrreee🎜 사용자가 로그인하면 Lumen Passport는 인터페이스 호출에 사용할 수 있는 액세스 토큰을 생성합니다. 사용자 인증이 필요한 방법에서는 auth()->user()를 사용하여 현재 로그인된 사용자 인스턴스를 얻을 수 있습니다. 🎜rrreee🎜위 단계를 통해 Lumen Passport를 성공적으로 통과했습니다. PHP 보안 검증을 구현했습니다. 이제 애플리케이션에서 인증을 사용하여 인증된 사용자만 액세스할 수 있도록 특정 경로와 기능을 보호할 수 있습니다. 🎜🎜요약: 🎜🎜이 글에서는 Lumen Passport를 통해 PHP 보안 검증을 구현하는 방법을 소개합니다. 먼저 Lumen Passport 확장 패키지를 설치하고 키 및 데이터베이스 마이그레이션 파일을 생성했습니다. 그런 다음 구성을 변경하고 Passport 방법을 사용하여 인증을 구성합니다. 마지막으로 컨트롤러의 Passport 클래스를 사용하여 사용자 로그인 및 액세스 토큰 생성을 구현할 수 있습니다. 이 간단하고 강력한 방법으로 사용자 인증 및 권한 제어를 쉽게 구현하여 애플리케이션의 보안을 보호할 수 있습니다. 🎜

위 내용은 通过 Lumen Passport 实现 PHP 安全验证의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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