はじめに
LaravelでAPIドキュメントを提供する際、L5-Swaggerを利用している方も多いと思います。しかし、Swagger UIに入力した認証トークンがリロードすると消えてしまい、再度入力するのが面倒という問題に直面したことはありませんか?
L5-Swaggerのバージョンを上げたら、リロードすると認証トークンが消えてしまい、都度ログイン処理を行うことになってしまいました。これが地味にだるい。
どうやって調べればいいかもわからなかったのですが、なんとか修正できました。
本記事では、L5-Swaggerの設定をカスタマイズして、認証トークンをリロード後も保持できるようにする方法を解説します。この設定を行えば、開発効率がアップすること間違いなしです。
設定前の準備
L5-Swaggerをすでに導入済みのLaravelプロジェクトを前提に解説します。もしまだ導入していない場合は、公式ドキュメントに従ってインストールと設定を行ってください。
設定ファイルのカスタマイズ
L5-Swaggerの設定は config/l5-swagger.php
で行います。このファイルを編集して、認証トークンがリロードしても消えないように設定します。
ステップ1: persist_authorization の設定を変更
以下のコードを l5-swagger.php
の ui
セクションに追加または変更します。
'ui' => [
'authorization' => [
'persist_authorization' => true,
],
],
この設定により、Swagger UIで入力した認証情報がブラウザのローカルストレージに保存され、リロードしてもクリアされなくなります。
ステップ2: 環境変数を使用する場合
環境ごとに設定を切り替えたい場合は、.env
ファイルに以下を追加します。
L5_SWAGGER_UI_PERSIST_AUTHORIZATION=true
これにより、設定ファイル内の以下の行が .env
ファイルから値を取得するようになります。
'persist_authorization' => env('L5_SWAGGER_UI_PERSIST_AUTHORIZATION', false),
設定の効果
これで、Swagger UI上で一度入力した認証トークンは、リロードしても保持され続けます。特に開発時やAPIのテストを頻繁に行う場合、この設定は非常に役立ちます。
注意点
ローカルストレージに認証トークンを保存するため、セキュリティに配慮する必要があります。公開環境では使用を控えるか、適切なセキュリティ対策を講じることをおすすめします。
まとめ
L5-Swaggerの設定をカスタマイズすることで、リロードしても認証トークンがクリアされないようにする方法をご紹介しました。この小さな設定変更が開発の効率化に大きく貢献するので、ぜひ試してみてください。
コメント