ホームページ > バックエンド開発 > PHPチュートリアル > パスポートを使用したLaravel認証

パスポートを使用したLaravel認証

Linda Hamilton
リリース: 2025-01-04 05:18:43
オリジナル
798 人が閲覧しました

Laravel Authentication Using Passport

Passport を使用した Laravel 認証のマスター: ステップバイステップガイド

認証は最新の Web アプリケーションの基礎です。 Laravel では、Passport が完全な OAuth2 サーバー実装を提供し、API 認証をシームレスに有効にします。このガイドでは、インストールから API の保護とテストまで、Laravel Passport をセットアップするプロセス全体を説明します。


はじめに

Laravelパスポートを使用する理由?

Laravel Passport は、OAuth2 認証を Laravel のエコシステムと緊密に統合することで、複雑な OAuth2 認証を簡素化します。パスポートを使用すると、次のことができます:

  • API ユーザーを安全に認証します。
  • モバイルおよび Web クライアント用の個人アクセス トークンを生成します。
  • トークンの有効期限と失効を簡単に管理します。

前提条件

実際に始める前に、次のことを確認してください。

  1. Laravel の基本的な理解。
  2. Laravel プロジェクト (v10.x 以降を推奨) がインストールされ、データベースが構成されている。
  3. PHP 8.0 以降がインストールされている。

プロジェクトが設定されていない場合は、次のコマンドを使用してプロジェクトを作成します。

composer create-project --prefer-dist laravel/laravel passport-auth
cd passport-auth
ログイン後にコピー
ログイン後にコピー

ステップ 1: Laravel Passport をインストールする

パッケージをインストールする

次のコマンドを実行して、Passport をプロジェクトに追加します:

composer require laravel/passport
ログイン後にコピー
ログイン後にコピー

パスポート ファイルの公開と移行

パスポートの移行と構成ファイルを公開します:

php artisan vendor:publish --tag=passport-migrations
php artisan migrate
ログイン後にコピー
ログイン後にコピー

ステップ 2: Laravel パスポートを構成する

暗号化キーとクライアントのインストール

インストール コマンドを実行します:

php artisan passport:install
ログイン後にコピー
ログイン後にコピー

これにより、暗号化キーが生成され、データベース内に OAuth クライアントが作成されます。出力、特にクライアント ID とシークレットをメモします。

オプション: Personal Access Client を作成する

個人用アクセス クライアントを明示的に作成するには、次のコマンドを実行します。

php artisan passport:client --personal
ログイン後にコピー

ステップ 3: モデルを更新する

HasApiTokens トレイトをユーザー モデルに追加します。

use Laravel\Passport\HasApiTokens;

class User extends Authenticatable
{
    use HasApiTokens, Notifiable;

    // Other properties...
}
ログイン後にコピー

ステップ 4: 認証構成を更新する

config/auth.php で API ガードのドライバーとして Passport を構成します:

'guards' => [
    'api' => [
        'driver' => 'passport',
        'provider' => 'users',
    ],
],
ログイン後にコピー

ステップ 5: パスポートのルートを登録する

AppProvidersAppServiceProvider で、Passport のルートを読み込みます:

use Laravel\Passport\Passport;

public function boot(): void
{
    Passport::routes();
    Passport::tokensExpireIn(now()->addDays(15));
    Passport::refreshTokensExpireIn(now()->addDays(30));
    Passport::personalAccessTokensExpireIn(now()->addMonths(6));
}
ログイン後にコピー

ステップ 6: 認証 API エンドポイントを構築する

ルートの追加

routes/api.php で API ルートを定義します:

use App\Http\Controllers\AuthController;

Route::post('/register', [AuthController::class, 'register']);
Route::post('/login', [AuthController::class, 'login']);
Route::middleware('auth:api')->get('/user', [AuthController::class, 'user']);
ログイン後にコピー

認証コントローラーを作成する

認証方法の実装:

composer create-project --prefer-dist laravel/laravel passport-auth
cd passport-auth
ログイン後にコピー
ログイン後にコピー

ステップ 7: 暗号化キーの権限を設定する

パスポート キーへの安全なアクセスを確保します:

composer require laravel/passport
ログイン後にコピー
ログイン後にコピー

権限を確認します:

php artisan vendor:publish --tag=passport-migrations
php artisan migrate
ログイン後にコピー
ログイン後にコピー

期待される出力:

php artisan passport:install
ログイン後にコピー
ログイン後にコピー

ステップ 8: API をテストする

Postman または任意の API クライアントを使用してエンドポイントをテストします:

  1. 登録: 名前、電子メール、パスワードを指定して POST リクエストを /register に送信します。
  2. ログイン: 電子メールとパスワードを使用して POST リクエストを /login に送信します。
  3. ユーザー データの取得: Authorization ヘッダーのトークンを使用して GET リクエストを /user に送信します。

ベストプラクティス

  • 本番環境では HTTPS を使用します。
  • 暗号化キーを定期的にローテーションします。
  • 入力を徹底的に検証します。
  • セキュリティを向上させるためにトークンのスコープを制限します。

結論

おめでとうございます! Laravel Passport を使用して API 認証を実装することができました。この設定は、API を保護するための堅牢な基盤を提供します。スコープ、トークン取り消し、クライアント認証情報などの高度な Passport 機能を探索して、アプリケーションのセキュリティをさらに強化します。


以上がパスポートを使用したLaravel認証の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート