ログイン情報を別の既存のアプリケーションに依存する必要がある CakePHP 2.2.3 アプリケーションを作成しています。ユーザー名/パスワードの組み合わせは別のデータベース/サーバーに存在し、CakePHP アプリをセットアップして、初めてインターフェイスにログインしたときに新しいユーザーを作成しました。プロセスは次のとおりです。
- ユーザーが初めてログインし、ユーザー名とパスワードを提供します。CakePHP ユーザー レコードはまだ存在しません
- システムは、同じ(サニタイズされた)ユーザー名を持つユーザーが反対側に存在するかどうかを確認します
- ユーザーが存在する場合は、パスワードを取得し、パスワードを比較して一致するかどうかを確認します。
- パスワードが一致する場合は、提供されたものをハッシュし、ユーザー レコードを保存します
- 新しく作成したユーザーにログインします
これにより、いくつかの問題が解決されます。主に、ユーザーが特定のことを行うためにログインする場所が複数あることです。
私の問題は、パスワードをハッシュするときに CakePHP が取得する値が時間の経過とともに変化するように見えることです。そのため、ユーザーがパスワードでログインする代わりに、ログインするたびに新しいユーザー レコードが作成されます。昨日、特定のユーザーでログインできないという問題が発生しました... login() アクションは、パスワードのハッシュ値として見られました。
特定のユーザーのパスワードは「roads」です
昨日のハッシュは: 988042d7f4e62760238d895472ecaf1844094f9f
今日、道路をハッシュすると、a8318e7bbe8ee5efc59f53b4ede4d80dc0495c6d
なぜこれが発生するのかを確認するためにどこから始めればよいのか、私には本当にわかりません。開発を進めるためにできることは、ログインするユーザー レコードのパスワードのハッシュ値を変更することだけです。これを行うのは2日目です。config/core.php のセキュリティ ハッシュまたはソルト値で何か問題があった可能性はありますか?
次のいずれかを行います。
- ハッシュが変化する理由を理解する
- ユーザーのログインに他のデータベースを使用するように Auth コンポーネントを変更します。
しかし、どちらもどこから始めればよいかわかりません