1

私のWebサイトでは、ユーザーは単純なアカウント(Webサイトで作成され、ユーザーを電子メールで選択するMY_OWN_USERプロバイダーを構成)またはFacebookログイン(fosfacebookバンドルを介して統合)を使用してログインできます。

ユーザーになりすまそうとしているとき(Symfony2のドキュメントで説明されているようにリンク'...?_ switch_user = demo@demo.com'を追加)Symfony2はそのような警告をログに記録します:

security.WARNING:ユーザーの切り替えに失敗しました:「ユーザーはFacebookで認証されていません」

Symfony \ Component \ Security \ Http \ Firewall \ SwitchUserListenerを確認しましたが、デフォルトではMY_OWN_USERプロバイダーではなく、facebook_idでユーザーを選択しようとするfosfacebookプロバイダーを取得しているようです(「...?_ switch_user=FACEBOOK_ID」でリンクを追加した場合-スイッチユーザーは正しく機能します!)

では、そのSwitchUserListenerを作成して、FacebookIDではなく電子メールでユーザーを選択するMY_OWN_USERプロバイダーを取得するにはどうすればよいでしょうか。

4

1 に答える 1

1

のファイアウォール構成で偽装を構成する場合、偽装されているユーザー ( refsecurity.yml )を見つけるために使用するプロバイダーを指定できます。例えば:

switch_user:
    provider: MY_OWN_USER

お役に立てれば!

于 2015-07-08T08:26:32.990 に答える