-2

私はCakePhpの最後のバージョンを使用しています。

電子メールとパスワードを使用して簡単なWebフォームを開発しました(ユーザー名の代わりに電子メールを使用しています)。

今、私は次の問題を抱えています。

データベースのメールフィールドを暗号化したので、プランのメールとハッシュ化されたパスワードをチェックするため、authComponentをそのまま使用することはできません。暗号化された電子メールとハッシュ化されたパスワードが必要です。

では、login()の前に、電子メールフィールドの値を変更するにはどうすればよいですか?

ありがとうございました

4

2 に答える 2

1

AuthComponentまだあなたの状況に適しています。

電子メールアドレスが「ユーザー名」でもあることを指定するコンポーネントを含める場合

public $components = array(
    'Auth' => array(
        'authenticate' => array(
            'Form' => array(
                'fields' => array('username' => 'email')
            )
        )
     )
);

そして、loginメソッドを呼び出す前に、電子メールアドレスを暗号化するだけです。

 $this->request->data['User']['email'] = someEncryption($this->request->data['User']['email']);
 $this->Auth->login();

お役に立てれば

詳細: http: //book.cakephp.org/2.0/en/core-libraries/components/authentication.html#creating-custom-authentication-objects

于 2012-08-09T05:04:15.807 に答える
0

を呼び出す前に、カスタムFormAuthenticateクラスを作成するか、電子メールを暗号化することができます。$this->request->data$this->Auth->login()

最初のオプションを使用する場合は、暗号化されていない電子メールをtmp varに保存し、ログインに失敗した場合は、暗号化されていない値を復元して、暗号化された値がフォームに表示されないようにします。

カスタム認証クラスの場合:http://book.cakephp.org/2.0/en/core-libraries/components/authentication.html#creating-custom-authentication-objects

于 2012-08-08T22:52:08.067 に答える