2

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

みんな乾杯:)

4

1 に答える 1