タグ

cakephpとpasswordに関するmorygonzalezのブックマーク (5)

  • AuthComponentを使いやすくするビヘイビア | へびにっき

    CakePHP 1.2 の AuthComponent はとても便利なのですが、POSTされたパスワードの値を自動的に暗号化(hash)してしまうため、ユーザの create/update を行う際のバリデーションが困難になります。そこで AuthComponent を補助する AuthModel ビヘイビアを作ってみました。 auth_model.phpgist:188066 このビヘイビアを使うことで 標準のバリデーション機能を使ってパスワード入力値を検証できるようになります 「再入力」による確認を行うための sameValue バリデータが使えるようになります データ更新時に「パスワード欄が空ならパスワードを変更しない」という動作を簡単に実現できます 以下、password カラムを備えた users テーブル(すなわち User モデル)を例に使い方を説明していきます。 まず

  • CakePHP:パスワード登録時のバリデーション: 机上の楼閣

    例によって、CakePHP1.2でのお話。 たとえばユーザー登録のページで、ユーザー名とパスワードを $form->input( 'username', array( 'label' => 'ユーザー名:' ) ); $form->input( 'password', array( 'label' => 'パスワード:' ) ); といったフォームに入力してもらう場合。 Authコンポーネントを通すとパスワードがハッシュ化されてしまうので、パスワードの文字数や使用可能文字などなどをモデルのバリデーションでチェックすることができなくなってしまう。例えパスワードが未入力でもハッシュを作ってしまうので、入力チェックさえままならない。 だが、せっかく高性能のバリデーションが使えるのだから、これを利用しない手はない。 というわけで、いろいろ試行錯誤してみたところ、どうにかよさげな解決策が出来た(らし

    morygonzalez
    morygonzalez 2010/04/08
    CakePHPでパスワードの文字列をハッシュ化前にバリデートする方法。
  • CakePHP 1.2 ユーザ登録でパスワードの確認 ( ラボブログ )

    スパイスラボ神部です。 改めて AuthComponent でのパスワードの確認方法を調べてみたら、確認の方法も公式に提供されているらしいので、小さくとりあげておきます。 -CakePHP のおいしいべ方: 1.2でいろいろ ここの「3」で、password_confirm というフィールド名にすればOKらしいです。 controller 側での確認方法も、リンク先の @TheKeyboard » Blog Archive » Simple User Registration in CakePHP 1.2 に載っています。 if ($this->data['User']['password'] == $this->Auth->password($this->data['User']['password_confirm'])) { こちらにあるように、、password_comfirm

  • CakePHP:Authコンポーネント使用時のパスワード: マイペースでね!

    いきなりですがCakePHPをマスターしようと思い、始めてみました。空いている時間を見つけていろいろ引っかかった点などを書いていければと思ってます。 まず引っかかったのがパスワード。 ユーザー管理はモデル名を「User」として id:integer(pk) name:varchar(30) loginid:varchar(20) password:varchar(50) ← ハッシュ化することを考えて長めに is_admin:boolean ← 管理者区分 としました。 Authコンポーネントを利用することにしたのですが、ユーザーの変更をする際にフォームのパスワード項目に現在のパスワードをデフォルト表示するわけにも行かないので、 パスワードが記入されていれば新しいパスワードに変更。空欄なら現在のパスワードのまま と言う仕様にしました。ところがAuthコンポーネントがパスワードが空文字で送信

  • ZiSTA Cake: Authコンポーネント使用時にパスワードをハッシュ化させない方法

    若干トリッキーかも知れませんが、手っ取り早くパスワードをハッシュ化させないようにする方法です。その方法はAuthComponentのfields属性でパスワード・フィールドの名前を変更してしまう事です。AuthComponentはユーザー名とパスワードのフィールドが揃っているとパスワードの入力をハッシュ化します。 以下のコードではフォームに'password'という名前のフィールドがあっても暗号化されません。モデルでの検証を行う事が出来ます。さらに'password_confirm'というフィールドがあれば暗号化されますので、これを利用してモデル内でパスワードの入力確認を行います。 class UsersController extends AppController { function beforeFilter(){ parent::beforeFilter(); if($this

  • 1