私はSymfony2にパスワード変更機能を組み込もうとしています。 「現在のパスワード」フィールド、「新しいパスワード」フィールド、「新しいパスワードの確認」フィールドがあり、現在注目しているのは「現在のパスワード」フィールドの検証です。symfony2のパスワードを確認する
(ところで、FOSUserBundle
のようなものが存在していることがわかりましたが、すでに公式のSymfonyのドキュメントに基づいて認証システムを構築しています今の時間はすべての私の認証コードをやり直す)
は、私は私が行うことができます願って/想像してることは言う検証コールバックを作成している。このような何か:あなたは私のコメントで見ることができるように
// Entity/User.php
public function currentPasswordIsValid(ExecutionContext $context)
{
$currentPassword = $whatever; // whatever the user submitted as their current password
$factory = $this->get('security.encoder_factory'); // Getting the factory this way doesn't work in this context.
$encoder = $factory->getEncoder($this);
$encryptedCurrentPassword = $encoder->encodePassword($this->getPassword(), $this->getSalt());
if ($encyptedCurrentPassword != $this->getPassword() {
$context->addViolation('Current password is not valid', array(), null);
}
}
上記のコードがうまくいかない理由が少なくとも2つあります。私はそれらの特定の問題に関する特定の質問を投稿するだけですが、おそらく私は間違ったツリー全体を吠えているかもしれません。だからこそ私は全体的な質問をしている。
どのようにしてユーザーのパスワードを検証できますか?
よかった、ありがとう。しかし、実際のパスワード検証部分はどうですか?それは私の質問が求めていたものです。カスタムバリデータの作成方法とフォームフィールドの作成方法はすでに知っています。 –
例を追加しました。 –
素晴らしいです、ありがとうございます。私はそれを試してみましょう。 –