我一直关注Symfony Book中的this tutorial来管理我的用户。
现在,我想在登录成功后设置一条flash消息,或者有人试图访问禁区。
据我所知,身份验证和授权不在控制器内部进行管理。因此,我不知道在哪里放置我的代码来显示一个简单的"抱歉,你没有连接"消息。
答案 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安全配置,尤其是这些:
entry_point
(在防火墙下) - 通常会在用户尝试访问受保护的网页时将用户重定向到登录页面。您可以在此处设置Flash消息。success_handler
位于form_login
下(如果您正在使用它)以显示您成功的登录消息success_handler
在logout
下显示您的退出消息一些参考文献: