CakePHP5系で認証機能のAuthenticationプラグインをインストール・エラー発生注意
2025/01/31
CakePHP5系で認証機能のAuthenticationプラグインをインストールしようとするとエラーが発生する。その対応方法を解説
CakePHP5系で認証機能プラグイン「Authentication」を composerを使用してインストールする際のコマンドは下記になります。
1 |
# composer require "cakephp/authentication:^3.0" |
CakePHP5オフィシャルの ChiffonBookの記述が間違っている
CakePHP5 ChiffonBook CMS チュートリアル – 認証
https://book.cakephp.org/5/ja/tutorials-and-examples/cms/authentication.html
CakePHP5 ChiffonBook シンプルな認証と認可のアプリケーション
https://book.cakephp.org/5/ja/tutorials-and-examples/blog-auth-example/auth.html#id3
上記の CakePHP5のオフィシャルサイトのマニュアルには、Authenticationをインストールする際のコマンドとして下記が紹介されています。
1 |
# composer require "cakephp/authentication:^2.0" |
ですが、上記のコマンドを実行すると下記のようなエラーが発生します。
1 2 3 4 5 6 7 8 |
Problem 1 - cakephp/authentication[2.0.0, ..., 2.4.0] require cakephp/core ^4.0 -> found cakephp/core[4.0.0, ..., 4.5.8] but these were not loaded, likely because it conflicts with another require. - cakephp/authentication[2.5.0, ..., 2.9.0] require cakephp/http ^4.0 -> found cakephp/http[4.0.0, ..., 4.5.8] but these were not loaded, likely because it conflicts with another require. - cakephp/authentication[2.10.0, ..., 2.10.2] require cakephp/http ^4.4 -> found cakephp/http[4.4.0, ..., 4.5.8] but these were not loaded, likely because it conflicts with another require. - cakephp/authentication 2.11.0 requires cakephp/http ^4.5 -> found cakephp/http[4.5.0, ..., 4.5.8] but these were not loaded, likely because it conflicts with another require. - Root composer.json requires cakephp/authentication ^2.0 -> satisfiable by cakephp/authentication[2.0.0, ..., 2.11.0]. Installation failed, reverting ./composer.json and ./composer.lock to their original content. |
メッセージの内容は、「CakePHP5系では Authentication Ver.2系は使えませんよ」というものです。
CakePHP5系では Authentication Ver.3系を使う必要がある
つまり、最初に書きましたが、CakePHP5系では Authentication Ver.3系を使う必要がありますので、実行するコマンドは下記となります。
1 |
# composer require "cakephp/authentication:^3.0" |
また、Githubにある Authenticationのリリースノートは下記になります。
それぞれの CakePHPのバージョンに合わせた Authenticationを確認しましょう。
CakePHP5 ChiffonBook Authentication Releases
https://github.com/cakephp/authentication/releases
CakePHP5の関連記事
CakePHP4、5のユーザ認証でID、PASS以外の削除フラグなども条件加える方法CakePHP4、CakePHP5系の認証処理でログインの有無の確認、ユーザ情報の取得の方法
CakePHP4、5で$_SERVERと同じようにURIを取得する「getUri()」の紹介
getParam('action')
で取得するアクション名は別関数に移動しても不変CakePHP4系、CakePHP5系のexists()でカラムを指定して値の有無をチェックする方法解説
CakePHP4、5のnewEmptyEntityで作成したオブジェクトは空なのか、確認してみた
CakePHP4、5でSELECT telephone as tel FROM usersの様にasでカラムに別名を付ける方法
CakePHP4、5の認証処理で認証が通らない際の確認方法と確認箇所の紹介
CakePHP5系で認証機能のAuthenticationプラグインをインストール・エラー発生注意
CakePHP5でヘルパーから他のヘルパーを読み込む方法・CakePHP4からの変更点
その他の「CakePHP5」に関する記事一覧
GoogleAdwords
GoogleAdwords
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-
-
CakePHP4、CakePHP5の「warning: DebugKit is disabling...」の対処方法
CakePHPのデバッグ用のツールであるDebugKitは適切な設定をしないとエラーログにワーニングメッセージが出力される。それを解消する方法を解説。
-
-
CakePHP4でcontrollerで実行したバリデーションエラーをmodelのにマージする方法
CakePHP4でcontrollerで実行したバリデーションの結果をModelのバリデーション結果に追加するメソッド「setError()」「setErrors()」の使い方の解説。
-
-
CakePHP3のUpload Plugin 3.0をバリデーションなど実運用向けのカスタマイズ方法解説・その2
CakePHP3でファイル、画像をアップロードするプラグイン、upload plugin 3を導入する手順を解説した記事。3部作のその2でバリデーションなどの実用的なカスタマイズ方法を解説。
-
-
CakePHP3でレコードを保存(追加、更新、Insert、Update)する複数の方法を紹介
CakePHP3でレコードを追加、更新(Insert、Update)する記述方法を解説。1件ずつ処理、全件をまとめて処理、条件に該当する複数件のレコードを処理方法をサンプルコードを用いて解説。
-
-
CakePHP3で生の SQLの実行はConnectionManagerを使う
CakePHP3で生の SQL文を実行する方法を解説。クリエビルダーを使う場合は TableRegistryを利用するが、SQLを実行する場合は ConnectionManagerを使う。プリペアードステートメントの使用方法も解説。
-
-
CakePHP4 でコマンドプログラム(シェルプログラム)を作成する方法解説
CakePHP4でバッチ処理を行うためのコマンド・シェルの実装方法について解説。bakeでテンプレートファイルを作成し、「execute()」に処理を記述する方法を解説。
-
-
CakePHP 2.3 Model、Controllerの見たい変数の中身をログ出力
CakePHPの Modelや Controllerの変数の中身をログとして出力して見る方法を提供します。
-
-
CakePHP3のビューで受取ったテーブルのオブジェクトを連想配列に変換する方法
コントローラーからビューに送ったテーブルのオブジェクトを連想配列に変換し、ビューの中で自由に使えるようにするメソッド「toArray()」の解説。連想配列に変換できれば利用度アップ!
-
-
getParam('action')
で取得するアクション名は別関数に移動しても不変CakePHP4系、5系では「getParam()」で処理中のアクション名を取得できる。そのアクションから別関数を呼び出してた関数でアクション名を調べたが同一の名称だった。
-
-
CakePHP3にWYSIWYGエディタのCKEditor4を設置、カスタマイズ方法を解説
WYSIWYGエディタであるCKEditor4をCDNを利用して簡単にCakePHP3に導入する方法とカスタマイズする方法を解説。CakePHP3にはページごとの振り分けを行うブロック化を利用する。