0

データベースにこれらのテーブルがあります:

user:
- email
- lastname
- firstname
- password

userType1:
- fkUser
- specialCol1
- specialCol2

userType2:
- fkUser
- specialCol1
- specialCol2

テーブルで動作する Symfony2 認証サービスを作成しましたがuser、関連付けられたオブジェクトをセッション (または認証によって管理する他の場所) に保存したい:userType1またはuserType2.

さらに、ユーザーのタイプに応じて、ユーザーをそのアカウントにリダイレクトしたいと考えています。

だから私の質問:

本人確認書類提出後の手続き方法は?(ユーザーのタイプを判別するため)

認証コンテキストで他のオブジェクト (ユーザータイプ) を管理するように Symfony に指示する方法は?

4

1 に答える 1

0

クックブックエントリをご覧ください。データベースからセキュリティユーザーをロードする方法。「カスタムエンティティプロバイダーを使用したユーザーの認証」および「データベース内のロールの管理」のセクションが役立つ場合があります。

ユーザーとそのテナントメンバーシップが必要な認証手順でも同様の問題が発生しました。基本的にクックブックのプロバイダーに似たカスタムプロバイダーを作成しました。ユーザーをシリアル化するとき、私は特定のフィールド(id、username、email)のみを使用し、残りのデータはプロバイダーのを介してフェッチされますrefreshUser()。ここでも、ユーザーとその関係はQueryBuilderを介してフェッチされます。セッションでユーザーをシリアル化すると、関係が「失われ」、常にユーザーを再フェッチする必要があるという問題がありました。

その後、それは基本的に@BenjaminPaapが書いたものです。ドキュメントの説明に従ってユーザーを取得し、ユーザータイプなどを取得します。

userTypeに応じてユーザーを特定のターゲットにリダイレクトする場合は、「カスタムUserProviderを作成する方法」を参照してください。リスナーは、ログイン直後にユーザーのタイプに応じてユーザーをリダイレクトするために必要なすべてを提供します。

于 2012-12-07T10:50:35.980 に答える