LoginSignup
1
0

More than 5 years have passed since last update.

CakePHPのログイン機能実装でハマったこと

Posted at

先日、cakephpでログイン機能を実装していたときにハマりましたので共有します。

ログイン機能自体は他のサイトを見ながら実装し、ユーザー登録をしたあとにそのユーザでログインしたらできずに困っていました。

ログインのAuthにはBlowfishを使用

User.php(Model)
    public function beforeSave($options = array()) {
        if (isset($this->data[$this->alias]['password'])) {
            $passwordHasher = new BlowfishPasswordHasher();
            $this->data[$this->alias]['password'] = $passwordHasher->hash(
                $this->data[$this->alias]['password'], 'blowfish'
            );
        }
        return true;
    }

blowfishを使って暗号化しデータベースに保存。
これだけではログインするときに暗号化したパスワードを解読できないみたいです。
そこで

BaseAuthenticate.php
    public $settings = array(
        'fields' => array(
            'username' => 'username',
            'password' => 'password'
        ),
        'userModel' => 'User',
        'userFields' => null,
        'scope' => array(),
        'recursive' => 0,
        'contain' => null,
                //ここがSimpleになっているので、Blowfishに変更
        //'passwordHasher' => 'Simple'
                'passwordHasher' => 'Blowfish'
    );

これでログインするときにパスワードをうまく解読してくれてログインできるようになるはずです!

1
0
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0