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()にし、登録時に使用するようにします(方法がわからない)
みんな乾杯:)