タグ: 未設定

CakePHPで入力パスワードが正しいパスワードかを確認する : CakePHP

投稿日 : 2015年2月24日 | 更新日 : 2015年04月01日 前のページへ戻る

Pocket

ハッシュ化して保存しているパスワードと入力パスワードが等しいか確認する。

SimplePasswordHasherは3.0で削除されるのでBlowfishPasswordHasherを使う。記事のSimplePasswordHasherはBlowfishPasswordHasherに読み替えてください(追記 2015.04.01)。

BlowfishPasswordHasherはSimplePasswordHasherより強いハッシュアルゴリズム(bcrypt) を使い、 ユーザーソルトごとに提供します。SimplePasswordHasherはCakePHP version 3.0で削除されます。

シンプルな認証と承認のアプリケーション — CakePHP Cookbook 2.x ドキュメント

ハッシュ値取得

App::uses( 'SimplePasswordHasher', 'Controller/Component/Auth' );

class User extends AppModel {
    .....
    .....
    public function getPasswordHash( $value ) {
        $passwordHasher = new SimplePasswordHasher();
        return $passwordHasher->hash( $value );

    }
}

パスワード確認

// パスワード取得
public function getPasswordById($id) {
    $user = $this->find('first', array(
        'conditions' => array('User.id' => $id),
         'fields' => 'password'
    ));
    return $user['User']['password'];
}

【CakePHP】BlowfishPasswordHasherで作成したハッシュパスと入力された平文パスが一致するか調べる – プログラムは、用いる言葉の選択で決まる

// 入力パスワードと等しいか確認
$pass = $this->getPasswordById($user[ 'id' ] ); 
$inputpass = $this->User->getPasswordHash($this->request->data['User']['password']);
if ($pass !== $inputpass ) {
    // 等しくない
}

CakePHP,Programming | 固定リンク | Comments (0)

このページの上へ移動

コメント

No comments yet.

コメントの投稿

改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。

 

 

 


このページの上へ