🦔

【ログイン機能】Laravel の認証周り【nuxtとのapi連携での設定場所備忘録】

2021/06/20に公開

SPAを作ることになった、APIを作ることになったときに見ることになる

guard

  • Laravel では「認証」と呼ぶ
  • ログイン機構の種類
  • ログイン画面の数だけガードがある、というイメージ

config/auth.php

    'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],

        'api' => [
            'driver' => 'jwt', //変更
            'provider' => 'users',
            'hash' => false,
        ],
    ],

driver(ガードドライバ)

  • ログインの認証状態をどうやって管理するか
'driver' => 'session',

jwtを利用する場合

'api' => [
    'driver' => 'jwt', //変更
    'provider' => 'users',
    'hash' => false,
],

provider

認証の方法

'provider' => 'users',

provider

    'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\User::class,
        ],

driver(プロバイダドライバ)

パスワードをどのように検証し、どのような条件ならログインを許可するか
実体は UserProvider クラスと Hasher クラスの組み合わせ

'driver' => 'eloquent',

model

誰をログインさせるか

  • 多くの場合は、ログインユーザを管理しているテーブルに対応する、モデルクラス
  • このモデルクラスは、 Authenticatable(auth) インターフェイスを実装している必要がある
'model' => App\User::class,

マルチ認証を実装する場合

guardにログイン機構の種類を複数設定
https://zenn.dev/ad5/articles/48671b32c89897#マルチ認証を実装する場合

参考

https://zenn.dev/ad5/articles/48671b32c89897#プロバイダドライバ-(driver)

https://qiita.com/fagai/items/a70c937ab7cf72f19dc2

これも確認してみる
https://reffect.co.jp/laravel/laravel-api-authentication-token-base#API

Discussion