ホームページ  >  記事  >  バックエンド開発  >  Laravel Passportを使用したPHPセキュリティ検証の実装

Laravel Passportを使用したPHPセキュリティ検証の実装

王林
王林オリジナル
2023-07-25 21:33:241467ブラウズ

Laravel Passport を使用した PHP セキュリティ認証の実装

はじめに:
現代の Web 開発では、ユーザーの認証と認可は非常に重要なセキュリティ機能です。 Laravel Passport は、ユーザー認証および認可機能を簡単に実装できる OAuth2 ベースの認証ツールです。この記事では、Laravel Passport を使用して PHP で安全な認証を実装する方法について説明します。

手順:

  1. Laravel Passport をインストールする
    まず、Laravel フレームワークがインストールされていることを確認します。次に、ターミナルでプロジェクト ディレクトリに入り、次のコマンドを実行して Laravel Passport パッケージをインストールします:

    composer require laravel/passport

    インストールが成功したら、次のコマンドを実行して、パッケージに必要なファイルとデータベースの移行を公開します:

    php artisan passport:install
  2. パスポートの構成
    config/app.php ファイルを開き、次のサービス プロバイダーを providers 配列に追加します。

    LaravelPassportPassportServiceProvider::class,

    次に、

    app/Http/Kernel.php ファイルの $routeMiddleware 配列に次のミドルウェアを追加します。

    'client' => LaravelPassportHttpMiddlewareCheckClientCredentials::class,

    最後に、

    app /User.php PassportHasApiTokens トレイトを /User.php ファイルに追加します:

    use LaravelPassportHasApiTokens;

    を導入します。クラスの trait 配列内:

    use HasApiTokens;

    これで、Laravel Passport が正常に構成されました。

  3. ユーザー認証インターフェイスの作成
    まず、ユーザー認証リクエストを処理するコントローラーを作成する必要があります。次のコマンドを実行して新しいコントローラを生成できます:

    php artisan make:controller AuthController

    次に、登録およびログイン リクエストを処理する次のメソッドを AuthController に追加します:

    use IlluminateHttpRequest;
    use IlluminateSupportFacadesAuth;
    
    class AuthController extends Controller
    {
     public function register(Request $request)
     {
         // 验证请求数据
         $request->validate([
             'name' => 'required|unique:users',
             'email' => 'required|email|unique:users',
             'password' => 'required|min:6'
         ]);
    
         // 创建用户
         $user = User::create([
             'name' => request('name'),
             'email' => request('email'),
             'password' => bcrypt(request('password')),
         ]);
    
         // 生成访问令牌
         $token = $user->createToken('accessToken')->accessToken;
    
         // 返回响应
         return response()->json(['token' => $token], 200);
     }
    
     public function login(Request $request)
     {
         // 验证请求数据
         $credentials = request(['email', 'password']);
    
         // 检查用户凭据
         if (!Auth::attempt($credentials)) {
             return response()->json(['message' => 'Unauthorized'], 401);
         }
    
         // 获取当前用户
         $user = $request->user();
    
         // 生成访问令牌
         $token = $user->createToken('accessToken')->accessToken;
    
         // 返回响应
         return response()->json(['user' => $user, 'token' => $token], 200);
     }
    }
  4. ルートの作成
    routes/api.php ファイルを開き、次のルートを追加します:

    Route::post('register', 'AuthController@register');
    Route::post('login', 'AuthController@login')->middleware('client');
  5. パスポート ガードの使用
    Open config/auth.php ファイルを編集し、api ガード ドライバーを passport に変更します:

    'guards' => [
     'api' => [
         'driver' => 'passport',
         'provider' => 'users',
     ],
    ],
  6. 認証されたユーザーを使用します
    これで、auth:api ミドルウェアを使用してユーザーを認証し、関連する API ルートを保護できるようになりました。たとえば、AuthController に次のルートを追加できます:

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

    次に、routes/api.php に次のルートを追加します:

    Route::get('profile', 'AuthController@profile')->middleware('auth:api');

    このように、/api/profile ルートにアクセスするとき、ユーザーは最初に有効な認証トークンを提供するように求められます。

概要:
この記事では、Laravel Passport を使用して PHP セキュリティ検証を実装する方法について詳しく説明します。 Laravel Passportをインストールして設定することで、ユーザー認証と認可機能を迅速に実装し、APIルートを保護できます。この記事が認証に Laravel Passport を使用する開発者にとって役立つことを願っています。

以上がLaravel Passportを使用したPHPセキュリティ検証の実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。