
CakePHP3にsecuriimageというライブラリを使って、ログイン時の画像認証を実現しようとしています。
securimage
ライブラリの参照はwebroot直下に解凍したファイル一式を格納しています。
webroot/securimage
対象となるControllerの先頭で
php
1require_once (WWW_ROOT . DS . 'securimage' . DS . 'securimage.php'); 2use Securimage;
として、対象となるViewでは
php
1<?=Securimage::getCaptchaHtml();
とすることで、
必要な要素である
・認証画像
・コード入力するテキストボックス
などは正常に表示できています。
問題はsubmitした際に入力したコードはpostでcontrollerに渡せているのですが、下記のコードでコードの認証に必ず失敗します。
php
1$image = new Securimage(); 2if ($image->check($this->request->data('captcha_code')) == true) { 3echo "Correct!"; 4} else { 5$this->Flash->error(__('ログイン情報が正しくありません。入力したコードは::'.$this->request->data('captcha_code'))); 6return $this->redirect('login'); 7}
色々と自分なりに調べた結果、おそらくはCakeと通常のPHPライブラリとでうまくSessionがやりとりできていないのではないかと思っています。
securimageはsession情報から入力されたコードの適正を見ているようなので。
ただ、どのようにsessionをやりとりすべきなのか、
CakePHP3でsecurimageを使っているような参考サイトもないため、かなり困っています。
どなたか上記、参考になるような知見をご教示いただけないでしょうか。
よろしくお願いいたします。

