相关疑难解决方法(0)

在access_control规则重定向后通知用户的最佳方法是什么?

来自Symfony 2.3安全文档:

如果拒绝访问,系统将尝试验证用户(如果尚未验证)(例如,将用户重定向到登录页面).如果用户已登录,将显示403"访问被拒绝"错误页面.有关更多信息,请参见如何自定义错误页面.

我目前正在使用access_control几条路线的规则.我想通知匿名用户,如果他们被重定向到登录路线,并显示" 您必须登录才能访问该页面 " 的消息.我已经阅读了几次安全文档并且没有找到与此相关的任何内容.我忽略了什么吗?

如果没有,只有当他们被重定向到登录时(即不是他们只是未经授权的角色),当他们被access_control规则停止时通知用户的最佳方式是什么?

编辑: 为了澄清,我特别询问如何检查重定向是否是由access_control规则引起的(如果可能的话,最好是在树枝上).

php redirect access-control symfony twig

20
推荐指数
1
解决办法
5109
查看次数

登录/注销后显示Flash消息

我一直在从Symfony Book中学习本教程来管理我的用户.

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

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

authentication symfony flash-message

5
推荐指数
1
解决办法
1732
查看次数

Symfony2:AJAX请求:如何在需要时处理身份验证?

使用Symfony2我已经实现了一个AJAX操作来管理我的应用程序中的一些书签(添加/删除).因此,用户需要进行身份验证才能继续.我有一个解决方案,将用户重定向到登录页面,但我认为最好使用事件来处理此重定向.

实际解决方案

检查用户的身份验证的方式与FOSUserBundle中的方式相同.

路由:

fbn_guide_manage_bookmark:
    path:  /bookmark/manage
    defaults: { _controller: FBNGuideBundle:Guide:managebookmark }
    options:
        expose: true
    requirements:
        _method:  POST 
Run Code Online (Sandbox Code Playgroud)

控制器:

public function manageBookmarkAction(Request $request)
{
    if ($request->isXmlHttpRequest()) {

        $user = $this->getUser();

        if (!is_object($user) || !$user instanceof UserInterface) {            
            return new JsonResponse(array('status' => 'login'));
        } 

        // DO THE STUFF
    }   
}
Run Code Online (Sandbox Code Playgroud)

jQuery:

$(function() {
    $('#bookmark').click(function() {
        $.ajax({
            type: 'POST',                  
            url: Routing.generate('fbn_guide_manage_bookmark'),
            data : xxxx, // SOME DATA
            success: function(data) {                
                if (data.status == 'login') {
                    var redirect = Routing.generate('fos_user_security_login');
                    window.location.replace(redirect);
                } else …
Run Code Online (Sandbox Code Playgroud)

authentication ajax jquery symfony

2
推荐指数
1
解决办法
4198
查看次数