ユーザーがコントローラ内で symfony2 にログインしているかどうかをチェックする方法は?
質問
私が読んだのは ここで Symfony2ベースのWebサイトのtwigテンプレート内部でユーザーのログイン状態をチェックする方法を読みました。 しかし、私はコントローラの内部からユーザーがログインしているかどうかをチェックする方法を知る必要があります。私は、以下のコードが正しいことを確信していました。
$user = $this->get('security.context')->getToken()->getUser();
が、常に何かを返します。例えば、ログインしているユーザーや匿名ユーザーなどです。
何か思い当たることはありますか?よろしくお願いします。
どのように解決するのですか?
警告
: チェック対象は
'IS_AUTHENTICATED_FULLY'
をチェックするだけで、ユーザーが "Remember me" 機能を使ってログインしていた場合は false を返します。
Symfony 2のドキュメントによると、3つの可能性があります。
is_authenticated_anonymously(匿名) - に自動的に割り当てられます。 ファイアウォールで保護されているが、実際にはログインしていないユーザーに に自動的に割り当てられます。これは、匿名アクセスが許可されている場合にのみ可能です。
is_authenticated_remembered - が自動的に割り当てられます。 自動的に割り当てられます。
is_authenticated_fully - は、現在のセッションでログイン情報を提供したユーザーに自動的に割り当てられます。 に自動的に割り当てられます。
これらのロールは3つの認証レベルを表します。
もし、あなたが
IS_AUTHENTICATED_REMEMBERED
ロールがある場合、あなたはまた はIS_AUTHENTICATED_ANONYMOUSLY
の役割を持つことになります。もしIS_AUTHENTICATED_FULLY
の役割を持つ場合、他の2つの役割も持っています。 言い換えれば、これらのロールは、認証の強度を高めるための3つのレベルを表しています。 認証の強さ(quot;strength")の3つのレベルを表しています。
私たちのシステムで、quot;Remember Me" 機能を使用したユーザーが、以下のチェック項目のみを行うページでまったくログインしていないかのように扱われる問題に遭遇しました。
'IS_AUTHENTICATED_FULLY'
.
その答えは、完全に認証されていない場合は再ログインを要求するか、覚えているロールを確認することです。
$securityContext = $this->container->get('security.authorization_checker');
if ($securityContext->isGranted('IS_AUTHENTICATED_REMEMBERED')) {
// authenticated REMEMBERED, FULLY will imply REMEMBERED (NON anonymous)
}
うまくいけば、これは私が犯したのと同じ間違いをする誰かを救うことになります。 私は、誰かがSymfony 2にログインしているかどうかをチェックする方法を調べるとき、まさにこの投稿を参考にしました。
関連
-
[解決済み] Composerで単一のライブラリを更新する方法は?
-
[解決済み] Symfony2 の config.yml から設定を読み込むには?
-
[解決済み] Symfony2のTwigテンプレートで設定パラメータを取得する方法
-
[解決済み] composer.jsonのチルダ(~)は何を意味しているのですか?
-
[解決済み] テンプレート内のログインユーザーにアクセスする
-
[解決済み] EntityManagerは終了しました。
-
[解決済み] Symfony2のTwigテンプレートエンジンにオブジェクトが存在するかどうかを確認するにはどうしたらいいですか?
-
[解決済み] 非推奨。数を意識させないDoctrineORMMappingUnderscoreNamingStrategyは非推奨です。
-
[解決済み] composerのインストールが300秒後にタイムアウトするのはなぜですか?
-
[解決済み] symfony 2 の "弱いルート" とは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】拡張子.yamlと.ymlの違いは何ですか?[重複あり]
-
[解決済み】Doctrine QueryBuilder で行数を数える。
-
[解決済み】Twigテンプレートで現在のURLを取得する?
-
[解決済み] Symfony2のTwigテンプレートで設定パラメータを取得する方法
-
[解決済み] symfony2のコントローラでparameters.ymlから読み込むにはどうしたらいいですか?
-
[解決済み] Twigのパスに複数のパラメータを追加する
-
[解決済み] Doctrine 2 は manyToOne リレーションで nullable=false を使うことはできないのですか?
-
[解決済み] Symfony 2: テンプレート内でユーザーがログインしていないことを確認するにはどうすればよいですか?
-
[解決済み] Symfony2でTwigテンプレート内の環境名を取得する
-
[解決済み] EntityManagerは終了しました。