Laravel10でAuth0を利用する

2023/04/11に公開

パッケージの説明

LaravelでAuth0を利用する場合は、laravel-auth0、composerのパッケージ名としてはauth0/loginを利用することになります。
先日リリースされたLaravel10では、以下の表のように、つい1週間ほど前に程リリースされたバージョン7.5.0以上を利用する必要があります。

SDK Version Laravel Version PHP Version Support Ends
7.5+ 10 8.2 Feb 2025
8.1 Nov 2024
7.0+ 9 8.2 Feb 2024
8.1 Feb 2024
8.0 Nov 2023

パッケージのバージョンによる問題

普通に利用すればいいじゃん?って話なのですが、この laravel-auth0 はマイナーバージョンでドラスティックな変更を行っています。
具体的には

  • 7.0 auth0-PHPを8.xを利用するようになった
  • 7.2 独自セッションじゃなくLaravelのSession APIを利用するようになった
  • 7.5 Guardメソッドの大幅な変更

ということで、リリースノートにはいろいろ書かれているんですが、ドキュメントが現時点では更新されておらず、サンプルも動きません。
サンプルに関しては7.4.Xでも動きませんでしたが。

7.5.Xの利用方法

具体的にどうすればいいのかというと、auth.phpの設定部分をリリースノートに記載されてる状態に変更します。

    'defaults' => [
        'guard' => 'auth0',
        'passwords' => 'users',
    ],
    'guards' => [
        'auth0' => [
            'driver' => 'auth0.guard',
            'provider' => 'auth0',
        ],
    ],
    'providers' => [
        'auth0' => [
            'driver' => 'auth0.provider',
            'repository' => 'auth0.repository',
        ],
    ],

既存バージョンからのアップデート

既存の7.4.X以前からのアップデートの場合は、auth0.phpを一旦新規に作成し直すことをおすすめします。

php artisan vendor:publish --tag=auth0-config --force 

テストではActingAsAuth0Userトレイトを利用していたかと思いますが、deprecatedですので、Impersonateを利用します。

Discussion