symfony2 : using referer after login with fosuserbundle

标签 symfony login fosuserbundle referer

登录成功后,fosuserbundle出现了将用户重定向到引荐来源的问题

app/config/security.yml

security:
    encoders:
        FOS\UserBundle\Model\UserInterface: sha512

    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: ROLE_ADMIN

    providers:
        fos_userbundle:
            id: fos_user.user_provider.username_email

    firewalls:
        main:
            pattern: ^/

            form_login:
                provider: fos_userbundle
                login_path:     fos_user_security_login
                use_referer:                    true
                check_path:     fos_user_security_check
                csrf_provider: form.csrf_provider
            logout:
                path: fos_user_security_logout
            anonymous:    true

    access_control:
        - { path: ^/%locale%/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }

和config.yml:
fos_user:
    db_driver: orm # other valid values are 'mongodb', 'couchdb' and 'propel'
    firewall_name: main
    user_class: Acme\UserBundle\Entity\User

    profile:
      form:
          type: Acme_user_registration
    registration:
      confirmation: { enabled: true }
      form:
          type: Acme_user_registration
      confirmation:
          enabled:    true
          from_email:
              address:        webmaster@acme.com
              sender_name:    administrateur de Acme.com
    resetting:
        token_ttl: 86400
        email:
            from_email: # Use this node only if you don't want the global email address for the resetting email
              address:        webmaster@Acme.com
              sender_name:    administrateur de Acme.com

不幸的是,当用户成功登录后,尽管我的security.yml配置文件中的“use_referer:true”,他仍然始终重定向到主页...

有人可以帮我吗?

最佳答案

好的,我找到了解决方案。在登录表单中,我添加了一个隐藏字段“_target_path”,并为它提供了引用的值...似乎工作正常

{% if app.request.get('_route') != app.request.headers.get('referer') %}    
    <input type="hidden" name="_target_path" value="{{ app.request.headers.get('referer') }}" />    
{% endif %}

关于symfony2 : using referer after login with fosuserbundle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20879164/

相关文章:

php - 如何使用 Symfony 2 应用程序的内部处理程序将用户注销

fosuserbundle - FOSUserBundle重置电子邮件HTML模板不起作用

php - 如何使用 FOSUserBundle 创建 "two"(聊天和管理)或更安全的区域

ios - 使用Facebook Connect登录IOS应用程序时发生冲突错误

javascript - 文件未定义

使用 SourceTree 登录 Git 失败,想改为使用 SSH 创建登录

symfony - 如何结合FosUserBundle和HWIOAuthBundle登录注册

php - Symfony2 Twig 形式的快捷方式 : form_widget

jquery - jquery或symfony2上的图片存储库

php - Symfony 2.0 在实体内部获取服务