登录/注销后显示Flash消息

时间:2015-06-06 10:47:15

标签: symfony authentication flash-message

我一直关注Symfony Book中的this tutorial来管理我的用户。

现在,我想在登录成功后设置一条flash消息,或者有人试图访问禁区。

据我所知,身份验证和授权不在控制器内部进行管理。因此,我不知道在哪里放置我的代码来显示一个简单的"抱歉,你没有连接"消息。

2 个答案:

答案 0 :(得分:2)

您可以从'CREATE TABLE users_profile(user_id INTEGER UNIQUE, FOREIGN KEY(user_id) REFERENCES users(user_id) ON DELETE CASCADE,\ firstname TEXT, lastname TEXT, email TEXT, website TEXT,\ picture TEXT, mobile TEXT, skype TEXT, age INTEGER, residence TEXT, gender TEXT,\ signature TEXT, avatar TEXT)' 访问SecurityContext。因此,假设您的禁区需要角色Controller,您可以执行以下操作:

SOME_ROLE

请注意,自Symfony 2.6以来,if (!$this->get('security.context')->isGranted('SOME_ROLE')) { $this->get('session')->getFlashBag()->add('error', 'Access forbidden'); // maybe return a RedirectResponse to another page the user can access... } 已被弃用。它仍然可以使用,但如果您想学习如何适应未来的版本,可以查看this

对于用户未登录的消息,您可以使用SecurityContext,与前一个非常相似:

AuthorizationChecker

您可以找到更多信息here

答案 1 :(得分:2)

显示简单消息需要一些时间和一些编码。如果您想通过Symfony方式进行,首先应该查看this安全配置,尤其是这些:

  1. entry_point(在防火墙下) - 通常会在用户尝试访问受保护的网页时将用户重定向到登录页面。您可以在此处设置Flash消息。
  2. success_handler位于form_login下(如果您正在使用它)以显示您成功的登录消息
  3. success_handlerlogout下显示您的退出消息
  4. 一些参考文献:

相关问题