FosUserBundle を使用して、アプリケーションのログイン/登録ワークフローを処理しています。grant_type=password
次に、FOSOAuthServer バンドルのワークフローを使用してアクセス トークンを生成したいので、登録時にユーザーのプレーン パスワードを取得する必要があります。
次のイベントで試しました:
FOSUserEvents::REGISTRATION_INITIALIZE
: ここにパスワードはありませんFOSUserEvents::REGISTRATION_SUCCESS
: このイベントはユーザー作成の直前に呼び出されるため、単純なパスワードですが、データベースにユーザーがありませんFOSUserEvents::REGISTRATION_COMPLETED
: ユーザーはデータベースに作成されますが、ユーザーの作成時にメソッドが属性を null に設定する$event->getUser()->getPlainPassword()
ため、null が返されます。$userManager->updatePassword()
plainPassword
これをどのように処理できるかについて、安全なアイデアはありますか? 私は主なアイデアを持っていますが、それが正しい方法であるかどうかはわかりません:
- セッションのパスワードをオンに
FOSUserEvents::REGISTRATION_SUCCESS
してアクセストークンを生成し、パスワードを削除しますFOSUserEvents::REGISTRATION_COMPLETED
- ユーザーマネージャークラスをオーバーライドして、メソッド
$userManager->updatePassword()
が呼び出されないよう$userManager->eraseCredentials()
にし、登録時に使用するようにします(方法がわからない)
みんな乾杯:)