Laravel 개발: Laravel Passport를 사용하여 OAuth2 인증을 구현하는 방법은 무엇입니까?
Laravel은 효율적이고 확장 가능하며 유지 관리가 쉬운 웹 애플리케이션을 쉽게 구축할 수 있게 해주는 인기 있는 PHP 웹 개발 프레임워크입니다. Laravel에는 Laravel Passport를 포함한 많은 기능과 구성 요소가 있습니다. Laravel Passport는 개발자가 애플리케이션에 보안 인증을 쉽게 추가할 수 있도록 도와주는 완전한 OAuth2 서버 구현입니다.
OAuth2는 API 보안을 위한 인증 표준이며 타사 애플리케이션이 API를 통해 사용자 데이터에 액세스할 수 있도록 하는 안전한 방법입니다. Facebook, Google, GitHub, Twitter 등 많은 기업과 조직에서 사용하는 개방형 표준입니다. Laravel Passport는 Laravel 프레임워크의 공식 OAuth2 서버 구현입니다.
아래에서는 Laravel Passport를 사용하여 OAuth2 인증을 구현하는 방법을 보여드리겠습니다.
1단계: Laravel Passport 설치
Composer를 사용하여 Laravel Passport를 설치하세요. 명령줄에 다음 명령을 입력하세요:
composer require laravel/passport
설치가 완료되면 다음 명령을 실행하여 Passport의 구성 파일과 데이터베이스 마이그레이션을 게시하세요.
php artisan passport:install
이 명령은 암호화 키와 생성에 사용되는 데이터베이스 테이블을 생성합니다. 액세스 토큰.
2단계: Passport 설정
Laravel 애플리케이션에서 Passport를 활성화하세요. config/app.php
파일을 편집하고 LaravelPassportPassportServiceProvider::class,
를 Provide 배열에 추가하세요. config/app.php
文件,将LaravelPassportPassportServiceProvider::class,
添加到Provide数组中。
在AppUser
模型中实现LaravelPassportHasApiTokens
trait。这个Trait将会给用户模型添加一些有关API用户的方法。
接下来,运行数据迁移以创建Passport使用的数据库表结构。
php artisan migrate
步骤3:在Passport中设置客户端
Passport在内部使用了OAuth2客户端-服务器模型。开发人员需要为其客户端创建唯一的“客户端ID”和“客户端密码”。在Laravel Passport中,要创建一个新的客户端,可以使用php artisan passport:client
命令。此命令将生成一个客户端ID和客户端密码,这些信息必须妥善存储,以便在API中使用。
php artisan passport:client --client
步骤4:定义API路由
在routes/api.php
文件中定义您的API路由。Passport包括一个名为auth:api
AppUser
모델에서 LaravelPassportHasApiTokens
특성을 구현하세요. 이 트레이트는 API 사용자와 관련된 몇 가지 메소드를 사용자 모델에 추가합니다. 다음으로 데이터 마이그레이션을 실행하여 Passport에서 사용하는 데이터베이스 테이블 구조를 만듭니다. Route::middleware('auth:api')->get('/user', function (Request $request) { return $request->user(); });3단계: Passport에서 클라이언트 설정Passport는 내부적으로 OAuth2 클라이언트-서버 모델을 사용합니다. 개발자는 클라이언트에 대해 고유한 "클라이언트 ID"와 "클라이언트 비밀번호"를 생성해야 합니다. Laravel Passport에서 새 클라이언트를 생성하려면
php artisan Passport:client
명령을 사용할 수 있습니다. 이 명령은 API에서 사용하기 위해 적절하게 저장되어야 하는 클라이언트 ID와 클라이언트 비밀번호를 생성합니다. POST /oauth/token HTTP/1.1 Host: your-app.com Content-Type: application/x-www-form-urlencoded grant_type=password& client_id=client-id& client_secret=client-secret& username=user@your-app.com& password=user-password&4단계: API 경로 정의
routes/api.php
파일에서 API 경로를 정의하세요. Passport에는 요청에 유효한 액세스 토큰이 포함되어 있는지 확인하기 위한 auth:api
라는 미들웨어가 포함되어 있습니다. 보호된 경로를 보호하려면 이 미들웨어를 사용해야 합니다. 예: { "token_type": "Bearer", "expires_in": 31536000, "access_token": "eyJ0eXAiOiJKV1QiLCJ...", "refresh_token": "def5020086062f..." }5단계: 액세스 토큰 생성액세스 토큰을 생성하기 전에 사용자는 클라이언트가 자신의 데이터에 액세스할 수 있도록 승인해야 합니다. API 애플리케이션의 경우 프런트 엔드에서 사용자에게 인증 인터페이스를 표시하여 사용자가 클라이언트가 자신의 데이터에 액세스하도록 인증할 수 있도록 해야 합니다. 액세스 토큰을 생성하려면 Laravel 애플리케이션에 POST 요청을 보내세요. POST 액세스 토큰 요청에는 클라이언트 ID, 클라이언트 비밀번호, 사용자 이름 및 비밀번호가 포함되어야 합니다. 요청이 성공하면 Passport는 액세스 토큰을 애플리케이션에 반환합니다.
GET /api/user HTTP/1.1 Host: your-app.com Authorization: Bearer eyJ0eXAiOiJKV1QiLCJ...액세스 토큰 응답은 다음과 같습니다.
rrreee
passport:install 명령을 전달하면 액세스 토큰을 생성하는 데 사용되는 암호화 키가 생성됩니다. 6단계: 액세스 토큰을 사용하여 API 호출 🎜🎜마지막으로 액세스 토큰을 사용하여 보호된 API 엔드포인트를 호출합니다. 요청 헤더를 설정할 때 Bearer 인증 프로토콜을 사용하고 요청에 "Authorization" 헤더를 지정해야 합니다. 🎜🎜예: 🎜rrreee🎜이것은 현재 인증된 사용자의 JSON 표현을 반환합니다. 🎜🎜결론: 🎜🎜Laravel Passport는 OAuth2 인증 흐름을 구현하는 편리한 방법을 제공합니다. 이를 통해 개발자는 Laravel 애플리케이션에 OAuth2 기능을 신속하게 추가하여 API를 더욱 안전하게 만들 수 있습니다. 위의 단계를 통해 Laravel Passport를 사용하여 Laravel에서 OAuth2 인증을 구현하는 방법을 배울 수 있습니다. 🎜위 내용은 Laravel 개발: Laravel Passport를 사용하여 OAuth2 인증을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!